diff --git a/TODO.md b/TODO.md index ec1900b8..0dbc84d6 100644 --- a/TODO.md +++ b/TODO.md @@ -1,26 +1,5 @@ -- Workflow / Skills - - 内部 Worker / 内部 Pod の Workflow 化 → [tickets/internal-worker-workflow.md](tickets/internal-worker-workflow.md) - - 半自動開発運用 Workflow → [tickets/auto-maintain-workflow.md](tickets/auto-maintain-workflow.md) - - tickets.sh による WorkItem / Thread MVP → [tickets/tickets-sh-workitem-thread-mvp.md](tickets/tickets-sh-workitem-thread-mvp.md) - - Prompt / Workflow 評価メトリクスと改善 Offer → [tickets/prompt-eval-metrics.md](tickets/prompt-eval-metrics.md) -- Permission: allow-all 既定 policy への整理 → [tickets/permission-default-policy.md](tickets/permission-default-policy.md) -- Pod: 任意ターンからの Fork(複数ターン巻き戻しを汎用化) → [tickets/pod-session-fork.md](tickets/pod-session-fork.md) -- Pod/TUI: 手動 rollback 導線 → [tickets/manual-turn-rollback.md](tickets/manual-turn-rollback.md) -- Pod: Inbound PodEvent ハンドリングの重複を統合 → [tickets/pod-inbound-pod-event-dedup.md](tickets/pod-inbound-pod-event-dedup.md) -- Pod: scope 永続化 authority の整理 → [tickets/pod-scope-persistence-authority.md](tickets/pod-scope-persistence-authority.md) -- SpawnPod 初回 task delivery の受理確認 → [tickets/spawnpod-initial-run-confirmation.md](tickets/spawnpod-initial-run-confirmation.md) -- E2E テストハーネス(`tests/e2e/`、opt-in) → [tickets/e2e-harness.md](tickets/e2e-harness.md) -- メモリ機構 - - memory / knowledge tool 利用タイミングのプロンプトガイダンス → [tickets/memory-tool-guidance-prompt.md](tickets/memory-tool-guidance-prompt.md) -- TUI 拡充 - - navigation mode / block focus の設計 → [tickets/tui-navigation-mode-design.md](tickets/tui-navigation-mode-design.md) - - spawned child Pod の一覧と一時 attach → [tickets/tui-spawned-pod-panel.md](tickets/tui-spawned-pod-panel.md) - - actionbar transient notice API → [tickets/tui-actionbar-transient-notice-api.md](tickets/tui-actionbar-transient-notice-api.md) - - tui -r picker で live pending Pod が表示から漏れる → [tickets/tui-picker-live-pending-pods.md](tickets/tui-picker-live-pending-pods.md) - - ユーザーマニフェストのモデル設定 wizard → [tickets/tui-user-model-setup.md](tickets/tui-user-model-setup.md) -- セッション内 Task ツールの注意機構(無アクティビティで `` ナッジ) → [tickets/session-todo-reminder.md](tickets/session-todo-reminder.md) -- ワークスペースのメモリーをLintするヘッドレスCLI -- system-reminder 注入機構の汎用化(2件目の利用者が出た時に検討。タグ形式 `...` の規約は session-todo-reminder で先行確立。注入された Item は worker.history に append する方針) -- Bashツールがファイル編集に常用されている問題をdesciptionで抑制 -- 事前定義したManifestをProfile的に扱い、Orchestrator/Coder/Researcherで別々のモデル/設定を使わせる運用ができるようにする -- 複数のPodのViewを行き来できるUI +# TODO legacy notice + +Active repository work items have been migrated to `work-items/`. + +Use `./tickets.sh list --status all` for the generated/current view and `./tickets.sh doctor` to validate the migration state. diff --git a/tickets.sh b/tickets.sh new file mode 100755 index 00000000..4bf31281 --- /dev/null +++ b/tickets.sh @@ -0,0 +1,539 @@ +#!/bin/sh +set -eu + +WORK_ITEMS_DIR=${WORK_ITEMS_DIR:-work-items} +STATUSES="open pending closed" +REQUIRED_FIELDS="id slug title status kind priority labels created_at updated_at assignee legacy_ticket" + +usage() { + cat <<'EOF' +tickets.sh - repository-local WorkItem / Thread helper + +Usage: + ./tickets.sh help + ./tickets.sh --help + ./tickets.sh list [--status open|pending|closed|all] + ./tickets.sh show + ./tickets.sh create --title [--slug <slug>] [--kind <kind>] [--priority P2] [--label a,b] + ./tickets.sh comment <id-or-slug> [--role comment|plan|decision|implementation_report] [--author <name>] [--file <path>] + ./tickets.sh review <id-or-slug> --approve|--request-changes [--author <name>] [--file <path>] + ./tickets.sh status <id-or-slug> open|pending|closed + ./tickets.sh close <id-or-slug> [--resolution <text>|--file <path>] + ./tickets.sh doctor + +Backend: + work-items/{open,pending,closed}/<id>/item.md + work-items/{open,pending,closed}/<id>/thread.md + work-items/{open,pending,closed}/<id>/artifacts/ + +Migration policy: + work-items/ is the canonical backend after migration. TODO.md is only a + legacy/generated-view notice. Open items must not remain as tickets/*.md, and + review notes must be appended to thread.md instead of tickets/*.review.md. +EOF +} + +die() { + printf 'error: %s\n' "$*" >&2 + exit 1 +} + +now_utc() { + date -u '+%Y-%m-%dT%H:%M:%SZ' +} + +compact_date() { + date -u '+%Y%m%d-%H%M%S' +} + +ensure_backend_dirs() { + mkdir -p "$WORK_ITEMS_DIR/open" "$WORK_ITEMS_DIR/pending" "$WORK_ITEMS_DIR/closed" +} + +is_status() { + case "$1" in + open|pending|closed) return 0 ;; + *) return 1 ;; + esac +} + +slugify() { + # ASCII-focused slugifier for POSIX shell. Non-ASCII titles should pass --slug. + printf '%s' "$1" | + tr '[:upper:]' '[:lower:]' | + sed 's/[^a-z0-9][^a-z0-9]*/-/g; s/^-//; s/-$//; s/--*/-/g' +} + +field_value() { + file=$1 + field=$2 + awk -v key="$field" ' + NR == 1 && $0 == "---" { in_fm = 1; next } + in_fm && $0 == "---" { exit } + in_fm { + prefix = key ":" + if (index($0, prefix) == 1) { + value = substr($0, length(prefix) + 1) + sub(/^[[:space:]]*/, "", value) + print value + exit + } + } + ' "$file" +} + +set_frontmatter_field() { + file=$1 + field=$2 + value=$3 + tmp=${TMPDIR:-/tmp}/tickets-sh.$$.tmp + awk -v key="$field" -v new_value="$value" ' + NR == 1 && $0 == "---" { in_fm = 1; print; next } + in_fm && $0 == "---" { in_fm = 0; print; next } + in_fm { + prefix = key ":" + if (index($0, prefix) == 1) { + print key ": " new_value + next + } + } + { print } + ' "$file" > "$tmp" + mv "$tmp" "$file" +} + +find_item_dir() { + query=$1 + matches=${TMPDIR:-/tmp}/tickets-sh.matches.$$ + : > "$matches" + for status in $STATUSES; do + for dir in "$WORK_ITEMS_DIR/$status"/*; do + [ -d "$dir" ] || continue + item=$dir/item.md + [ -f "$item" ] || continue + id=$(field_value "$item" id || true) + slug=$(field_value "$item" slug || true) + if [ "$query" = "$id" ] || [ "$query" = "$slug" ]; then + printf '%s\n' "$dir" >> "$matches" + fi + done + done + count=$(wc -l < "$matches" | tr -d ' ') + if [ "$count" -eq 0 ]; then + rm -f "$matches" + die "work item not found: $query" + fi + if [ "$count" -gt 1 ]; then + cat "$matches" >&2 + rm -f "$matches" + die "ambiguous work item: $query" + fi + sed -n '1p' "$matches" + rm -f "$matches" +} + +item_status_from_dir() { + case "$1" in + */open/*) printf 'open\n' ;; + */pending/*) printf 'pending\n' ;; + */closed/*) printf 'closed\n' ;; + *) printf 'unknown\n' ;; + esac +} + +labels_yaml() { + labels=$1 + if [ -z "$labels" ]; then + printf '[]' + return + fi + old_ifs=$IFS + IFS=, + first=1 + printf '[' + for label in $labels; do + clean=$(printf '%s' "$label" | sed 's/^[[:space:]]*//; s/[[:space:]]*$//') + [ -n "$clean" ] || continue + if [ "$first" -eq 0 ]; then + printf ', ' + fi + printf '%s' "$clean" + first=0 + done + IFS=$old_ifs + printf ']' +} + +read_body_to_file() { + input_file=$1 + output_file=$2 + if [ -n "$input_file" ]; then + [ -f "$input_file" ] || die "file not found: $input_file" + cat "$input_file" > "$output_file" + return + fi + if [ -t 0 ]; then + printf 'No body provided.\n' > "$output_file" + else + cat > "$output_file" + fi +} + +append_thread_event() { + dir=$1 + event=$2 + heading=$3 + author=$4 + status_value=$5 + body_file=$6 + at=$(now_utc) + thread=$dir/thread.md + [ -f "$thread" ] || : > "$thread" + { + printf '\n<!-- event: %s author: %s at: %s' "$event" "$author" "$at" + if [ -n "$status_value" ]; then + printf ' status: %s' "$status_value" + fi + printf ' -->\n\n' + printf '## %s\n\n' "$heading" + cat "$body_file" + printf '\n\n---\n' + } >> "$thread" + set_frontmatter_field "$dir/item.md" updated_at "$at" +} + +cmd_list() { + status_filter=open + while [ "$#" -gt 0 ]; do + case "$1" in + --status) + [ "$#" -ge 2 ] || die "--status requires a value" + status_filter=$2 + shift 2 + ;; + *) die "unknown list argument: $1" ;; + esac + done + case "$status_filter" in + open|pending|closed|all) ;; + *) die "invalid status: $status_filter" ;; + esac + + printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\n' status id slug title kind priority updated_at + for status in $STATUSES; do + if [ "$status_filter" != all ] && [ "$status_filter" != "$status" ]; then + continue + fi + for dir in "$WORK_ITEMS_DIR/$status"/*; do + [ -d "$dir" ] || continue + item=$dir/item.md + [ -f "$item" ] || continue + printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\n' \ + "$(field_value "$item" status)" \ + "$(field_value "$item" id)" \ + "$(field_value "$item" slug)" \ + "$(field_value "$item" title)" \ + "$(field_value "$item" kind)" \ + "$(field_value "$item" priority)" \ + "$(field_value "$item" updated_at)" + done + done +} + +cmd_show() { + [ "$#" -eq 1 ] || die "show requires <id-or-slug>" + dir=$(find_item_dir "$1") + item=$dir/item.md + thread=$dir/thread.md + printf '# %s\n\n' "$(field_value "$item" title)" + printf 'Path: %s\n' "$dir" + printf 'Status: %s\n' "$(field_value "$item" status)" + printf 'ID: %s\n' "$(field_value "$item" id)" + printf 'Slug: %s\n\n' "$(field_value "$item" slug)" + printf '## item.md\n\n' + cat "$item" + printf '\n\n## thread.md\n\n' + if [ -f "$thread" ]; then + tail -n 80 "$thread" + else + printf '(missing thread.md)\n' + fi +} + +cmd_create() { + title= + slug= + kind=task + priority=P2 + labels= + while [ "$#" -gt 0 ]; do + case "$1" in + --title) [ "$#" -ge 2 ] || die "--title requires a value"; title=$2; shift 2 ;; + --slug) [ "$#" -ge 2 ] || die "--slug requires a value"; slug=$2; shift 2 ;; + --kind) [ "$#" -ge 2 ] || die "--kind requires a value"; kind=$2; shift 2 ;; + --priority) [ "$#" -ge 2 ] || die "--priority requires a value"; priority=$2; shift 2 ;; + --label) [ "$#" -ge 2 ] || die "--label requires a value"; labels=$2; shift 2 ;; + *) die "unknown create argument: $1" ;; + esac + done + [ -n "$title" ] || die "create requires --title" + if [ -z "$slug" ]; then + slug=$(slugify "$title") + else + slug=$(slugify "$slug") + fi + [ -n "$slug" ] || slug=item + ensure_backend_dirs + stamp=$(compact_date) + id=$stamp-$slug + dir=$WORK_ITEMS_DIR/open/$id + if [ -e "$dir" ]; then + id=$id-$$ + dir=$WORK_ITEMS_DIR/open/$id + fi + created=$(now_utc) + mkdir -p "$dir/artifacts" + : > "$dir/artifacts/.gitkeep" + cat > "$dir/item.md" <<EOF +--- +id: $id +slug: $slug +title: $title +status: open +kind: $kind +priority: $priority +labels: $(labels_yaml "$labels") +created_at: $created +updated_at: $created +assignee: null +legacy_ticket: null +--- + +## Background + +Created by tickets.sh. + +## Acceptance criteria + +- TBD +EOF + cat > "$dir/thread.md" <<EOF +<!-- event: create author: tickets.sh at: $created --> + +## Created + +Created by tickets.sh create. + +--- +EOF + printf '%s\n' "$id" +} + +cmd_comment() { + [ "$#" -ge 1 ] || die "comment requires <id-or-slug>" + query=$1 + shift + role=comment + author=${USER:-unknown} + file= + while [ "$#" -gt 0 ]; do + case "$1" in + --role) [ "$#" -ge 2 ] || die "--role requires a value"; role=$2; shift 2 ;; + --author) [ "$#" -ge 2 ] || die "--author requires a value"; author=$2; shift 2 ;; + --file) [ "$#" -ge 2 ] || die "--file requires a value"; file=$2; shift 2 ;; + *) die "unknown comment argument: $1" ;; + esac + done + dir=$(find_item_dir "$query") + body=${TMPDIR:-/tmp}/tickets-sh.body.$$ + read_body_to_file "$file" "$body" + heading=$role + case "$role" in + comment) heading="Comment" ;; + plan) heading="Plan" ;; + decision) heading="Decision" ;; + implementation_report) heading="Implementation report" ;; + esac + append_thread_event "$dir" "$role" "$heading" "$author" "" "$body" + rm -f "$body" +} + +cmd_review() { + [ "$#" -ge 1 ] || die "review requires <id-or-slug>" + query=$1 + shift + author=${USER:-unknown} + file= + review_status= + while [ "$#" -gt 0 ]; do + case "$1" in + --approve) review_status=approve; shift ;; + --request-changes) review_status=request_changes; shift ;; + --author) [ "$#" -ge 2 ] || die "--author requires a value"; author=$2; shift 2 ;; + --file) [ "$#" -ge 2 ] || die "--file requires a value"; file=$2; shift 2 ;; + *) die "unknown review argument: $1" ;; + esac + done + [ -n "$review_status" ] || die "review requires --approve or --request-changes" + dir=$(find_item_dir "$query") + body=${TMPDIR:-/tmp}/tickets-sh.body.$$ + read_body_to_file "$file" "$body" + if [ "$review_status" = approve ]; then + heading="Review: approve" + else + heading="Review: request changes" + fi + append_thread_event "$dir" review "$heading" "$author" "$review_status" "$body" + rm -f "$body" +} + +cmd_status() { + [ "$#" -eq 2 ] || die "status requires <id-or-slug> <open|pending|closed>" + query=$1 + new_status=$2 + is_status "$new_status" || die "invalid status: $new_status" + dir=$(find_item_dir "$query") + id=$(field_value "$dir/item.md" id) + new_dir=$WORK_ITEMS_DIR/$new_status/$id + ensure_backend_dirs + if [ "$dir" != "$new_dir" ]; then + [ ! -e "$new_dir" ] || die "target already exists: $new_dir" + mv "$dir" "$new_dir" + dir=$new_dir + fi + set_frontmatter_field "$dir/item.md" status "$new_status" + set_frontmatter_field "$dir/item.md" updated_at "$(now_utc)" +} + +cmd_close() { + [ "$#" -ge 1 ] || die "close requires <id-or-slug>" + query=$1 + shift + resolution= + file= + while [ "$#" -gt 0 ]; do + case "$1" in + --resolution) [ "$#" -ge 2 ] || die "--resolution requires a value"; resolution=$2; shift 2 ;; + --file) [ "$#" -ge 2 ] || die "--file requires a value"; file=$2; shift 2 ;; + *) die "unknown close argument: $1" ;; + esac + done + cmd_status "$query" closed + dir=$(find_item_dir "$query") + body=${TMPDIR:-/tmp}/tickets-sh.body.$$ + if [ -n "$file" ]; then + read_body_to_file "$file" "$body" + elif [ -n "$resolution" ]; then + printf '%s\n' "$resolution" > "$body" + else + printf 'Closed.\n' > "$body" + fi + cp "$body" "$dir/resolution.md" + append_thread_event "$dir" close "Closed" "${USER:-unknown}" closed "$body" + rm -f "$body" +} + +doctor_error() { + printf 'doctor: %s\n' "$*" >&2 + DOCTOR_ERRORS=$((DOCTOR_ERRORS + 1)) +} + +cmd_doctor() { + DOCTOR_ERRORS=0 + for status in $STATUSES; do + [ -d "$WORK_ITEMS_DIR/$status" ] || doctor_error "missing directory: $WORK_ITEMS_DIR/$status" + done + + ids=${TMPDIR:-/tmp}/tickets-sh.ids.$$ + slugs=${TMPDIR:-/tmp}/tickets-sh.slugs.$$ + : > "$ids" + : > "$slugs" + + for status in $STATUSES; do + [ -d "$WORK_ITEMS_DIR/$status" ] || continue + for dir in "$WORK_ITEMS_DIR/$status"/*; do + [ -d "$dir" ] || continue + item=$dir/item.md + thread=$dir/thread.md + artifacts=$dir/artifacts + [ -f "$item" ] || { doctor_error "missing item.md: $dir"; continue; } + [ -f "$thread" ] || doctor_error "missing thread.md: $dir" + [ -d "$artifacts" ] || doctor_error "missing artifacts/: $dir" + first=$(sed -n '1p' "$item") + [ "$first" = "---" ] || doctor_error "item.md missing frontmatter opener: $item" + for field in $REQUIRED_FIELDS; do + value=$(field_value "$item" "$field" || true) + [ -n "$value" ] || doctor_error "missing required field '$field': $item" + done + id=$(field_value "$item" id || true) + slug=$(field_value "$item" slug || true) + fm_status=$(field_value "$item" status || true) + if [ -n "$id" ]; then + printf '%s\t%s\n' "$id" "$item" >> "$ids" + base=$(basename "$dir") + [ "$base" = "$id" ] || doctor_error "directory id mismatch: $dir has id $id" + fi + if [ -n "$slug" ]; then + printf '%s\t%s\n' "$slug" "$item" >> "$slugs" + fi + if [ "$fm_status" != "$status" ]; then + doctor_error "status mismatch: $item has '$fm_status' under '$status'" + fi + done + done + + dup_ids=$(cut -f1 "$ids" | sort | uniq -d) + if [ -n "$dup_ids" ]; then + old_ifs=$IFS + IFS=' +' + for dup in $dup_ids; do + [ -n "$dup" ] && doctor_error "duplicate id: $dup" + done + IFS=$old_ifs + fi + dup_slugs=$(cut -f1 "$slugs" | sort | uniq -d) + if [ -n "$dup_slugs" ]; then + old_ifs=$IFS + IFS=' +' + for dup in $dup_slugs; do + [ -n "$dup" ] && doctor_error "duplicate slug: $dup" + done + IFS=$old_ifs + fi + rm -f "$ids" "$slugs" + + if [ -f TODO.md ] && grep -Eq 'tickets/[^][ )]+\.md|tickets/.*\.review\.md' TODO.md; then + doctor_error "TODO.md still references legacy tickets/*.md" + fi + for f in tickets/*.md tickets/*.review.md; do + [ -e "$f" ] || continue + doctor_error "legacy ticket file remains: $f" + done + + if [ "$DOCTOR_ERRORS" -eq 0 ]; then + printf 'doctor: ok\n' + return 0 + fi + printf 'doctor: %s error(s)\n' "$DOCTOR_ERRORS" >&2 + return 1 +} + +main() { + cmd=${1:-help} + case "$cmd" in + help|--help|-h) usage ;; + list) shift; cmd_list "$@" ;; + show) shift; cmd_show "$@" ;; + create) shift; cmd_create "$@" ;; + comment) shift; cmd_comment "$@" ;; + review) shift; cmd_review "$@" ;; + status) shift; cmd_status "$@" ;; + close) shift; cmd_close "$@" ;; + doctor) shift; [ "$#" -eq 0 ] || die "doctor takes no arguments"; cmd_doctor ;; + *) usage >&2; die "unknown command: $cmd" ;; + esac +} + +main "$@" diff --git a/work-items/README.md b/work-items/README.md new file mode 100644 index 00000000..c67b7562 --- /dev/null +++ b/work-items/README.md @@ -0,0 +1,96 @@ +# Work Items backend + +`work-items/` is the canonical file backend for repository work after the migration from `TODO.md` and `tickets/*.md`. + +## Layout + +```text +work-items/ + README.md + open/ + <id>/ + item.md + thread.md + artifacts/ + pending/ + <id>/ + item.md + thread.md + artifacts/ + closed/ + <id>/ + item.md + thread.md + resolution.md + artifacts/ +``` + +`<id>` is timestamp based: `YYYYMMDD-HHMMSS-<slug>`. There is no central sequence file. + +## `item.md` schema + +`item.md` is Markdown with YAML-like frontmatter. The MVP parser intentionally supports only simple `key: value` lines. + +Required fields: + +```yaml +--- +id: 20260527-000001-example +slug: example +title: Human-readable title +status: open +kind: feature +priority: P2 +labels: [maintainer, workflow] +created_at: 2026-05-27T00:00:01Z +updated_at: 2026-05-27T00:00:01Z +assignee: null +legacy_ticket: tickets/example.md +--- +``` + +`status` must match the containing directory (`open`, `pending`, or `closed`). `legacy_ticket` records the migrated source path when one existed; use `null` for items created from a TODO-only entry or new work. + +## `thread.md` schema + +`thread.md` is an append-only Markdown event log. `tickets.sh comment`, `tickets.sh review`, and `tickets.sh close` append an HTML-comment event header, a Markdown heading, the event body, and a `---` separator. + +Example: + +```md +<!-- event: review author: orchestrator at: 2026-05-27T12:00:00Z status: request_changes --> + +## Review: request changes + +Review notes. + +--- +``` + +Review state belongs in `thread.md`; new `tickets/*.review.md` files should not be created. + +## Commands + +Use `../tickets.sh --help` from this repository root for the command reference. The script performs file operations only; it does not run `git add` or `git commit`. + +Common commands: + +```sh +./tickets.sh list --status all +./tickets.sh show <id-or-slug> +./tickets.sh create --title "Title" --slug title +./tickets.sh comment <id-or-slug> --role plan --file notes.md +./tickets.sh review <id-or-slug> --approve --file review.md +./tickets.sh close <id-or-slug> --resolution "Done" +./tickets.sh doctor +``` + +## Migration policy + +The migration moved unfinished `TODO.md` entries and `tickets/*.md` bodies into `work-items/open/*/item.md`. Existing review files, when present, must be represented as `review` events in `thread.md`. After migration: + +- `work-items/` is the source of truth. +- `TODO.md` is only a legacy/generated-view notice and must not carry open ticket state. +- `tickets/*.md` and `tickets/*.review.md` must not remain as canonical unfinished items. +- Closed items are moved to `work-items/closed/` instead of being deleted. +- `./tickets.sh doctor` checks schema, status placement, duplicate IDs/slugs, and leftover legacy ticket files. diff --git a/work-items/open/20260527-000001-auto-maintain-workflow/artifacts/.gitkeep b/work-items/open/20260527-000001-auto-maintain-workflow/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/auto-maintain-workflow.md b/work-items/open/20260527-000001-auto-maintain-workflow/item.md similarity index 91% rename from tickets/auto-maintain-workflow.md rename to work-items/open/20260527-000001-auto-maintain-workflow/item.md index 0b4d4a24..3dc5ce86 100644 --- a/tickets/auto-maintain-workflow.md +++ b/work-items/open/20260527-000001-auto-maintain-workflow/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000001-auto-maintain-workflow +slug: auto-maintain-workflow +title: 半自動開発運用 Workflow +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:01Z +updated_at: 2026-05-27T00:00:01Z +assignee: null +legacy_ticket: tickets/auto-maintain-workflow.md +--- + +## Migration reference + +- legacy_ticket: tickets/auto-maintain-workflow.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # 半自動開発運用 Workflow ## 背景 diff --git a/work-items/open/20260527-000001-auto-maintain-workflow/thread.md b/work-items/open/20260527-000001-auto-maintain-workflow/thread.md new file mode 100644 index 00000000..fe35c9a7 --- /dev/null +++ b/work-items/open/20260527-000001-auto-maintain-workflow/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:01Z --> + +## Migrated + +Migrated from tickets/auto-maintain-workflow.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000002-e2e-harness/artifacts/.gitkeep b/work-items/open/20260527-000002-e2e-harness/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/e2e-harness.md b/work-items/open/20260527-000002-e2e-harness/item.md similarity index 94% rename from tickets/e2e-harness.md rename to work-items/open/20260527-000002-e2e-harness/item.md index 4206396d..edea4554 100644 --- a/tickets/e2e-harness.md +++ b/work-items/open/20260527-000002-e2e-harness/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000002-e2e-harness +slug: e2e-harness +title: E2E テストハーネス +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:02Z +updated_at: 2026-05-27T00:00:02Z +assignee: null +legacy_ticket: tickets/e2e-harness.md +--- + +## Migration reference + +- legacy_ticket: tickets/e2e-harness.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # E2E テストハーネス ## 背景 diff --git a/work-items/open/20260527-000002-e2e-harness/thread.md b/work-items/open/20260527-000002-e2e-harness/thread.md new file mode 100644 index 00000000..19c7d489 --- /dev/null +++ b/work-items/open/20260527-000002-e2e-harness/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:02Z --> + +## Migrated + +Migrated from tickets/e2e-harness.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000003-internal-worker-workflow/artifacts/.gitkeep b/work-items/open/20260527-000003-internal-worker-workflow/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/internal-worker-workflow.md b/work-items/open/20260527-000003-internal-worker-workflow/item.md similarity index 91% rename from tickets/internal-worker-workflow.md rename to work-items/open/20260527-000003-internal-worker-workflow/item.md index a4986048..9493d3b9 100644 --- a/tickets/internal-worker-workflow.md +++ b/work-items/open/20260527-000003-internal-worker-workflow/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000003-internal-worker-workflow +slug: internal-worker-workflow +title: 内部 Worker / 内部 Pod の Workflow 化 +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:03Z +updated_at: 2026-05-27T00:00:03Z +assignee: null +legacy_ticket: tickets/internal-worker-workflow.md +--- + +## Migration reference + +- legacy_ticket: tickets/internal-worker-workflow.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # 内部 Worker / 内部 Pod の Workflow 化 ## 背景 diff --git a/work-items/open/20260527-000003-internal-worker-workflow/thread.md b/work-items/open/20260527-000003-internal-worker-workflow/thread.md new file mode 100644 index 00000000..bb9ff4a8 --- /dev/null +++ b/work-items/open/20260527-000003-internal-worker-workflow/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:03Z --> + +## Migrated + +Migrated from tickets/internal-worker-workflow.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000004-manual-turn-rollback/artifacts/.gitkeep b/work-items/open/20260527-000004-manual-turn-rollback/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/manual-turn-rollback.md b/work-items/open/20260527-000004-manual-turn-rollback/item.md similarity index 86% rename from tickets/manual-turn-rollback.md rename to work-items/open/20260527-000004-manual-turn-rollback/item.md index 34e8b8b4..f9ed213f 100644 --- a/tickets/manual-turn-rollback.md +++ b/work-items/open/20260527-000004-manual-turn-rollback/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000004-manual-turn-rollback +slug: manual-turn-rollback +title: Pod/TUI: 手動 rollback 導線 +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:04Z +updated_at: 2026-05-27T00:00:04Z +assignee: null +legacy_ticket: tickets/manual-turn-rollback.md +--- + +## Migration reference + +- legacy_ticket: tickets/manual-turn-rollback.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # Pod/TUI: 手動 rollback 導線 ## 背景 diff --git a/work-items/open/20260527-000004-manual-turn-rollback/thread.md b/work-items/open/20260527-000004-manual-turn-rollback/thread.md new file mode 100644 index 00000000..722bfdb6 --- /dev/null +++ b/work-items/open/20260527-000004-manual-turn-rollback/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:04Z --> + +## Migrated + +Migrated from tickets/manual-turn-rollback.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000005-memory-tool-guidance-prompt/artifacts/.gitkeep b/work-items/open/20260527-000005-memory-tool-guidance-prompt/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/memory-tool-guidance-prompt.md b/work-items/open/20260527-000005-memory-tool-guidance-prompt/item.md similarity index 89% rename from tickets/memory-tool-guidance-prompt.md rename to work-items/open/20260527-000005-memory-tool-guidance-prompt/item.md index ed24d55d..f4495ffa 100644 --- a/tickets/memory-tool-guidance-prompt.md +++ b/work-items/open/20260527-000005-memory-tool-guidance-prompt/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000005-memory-tool-guidance-prompt +slug: memory-tool-guidance-prompt +title: プロンプト: memory / knowledge tool 利用タイミングのガイダンス +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:05Z +updated_at: 2026-05-27T00:00:05Z +assignee: null +legacy_ticket: tickets/memory-tool-guidance-prompt.md +--- + +## Migration reference + +- legacy_ticket: tickets/memory-tool-guidance-prompt.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # プロンプト: memory / knowledge tool 利用タイミングのガイダンス ## 背景 diff --git a/work-items/open/20260527-000005-memory-tool-guidance-prompt/thread.md b/work-items/open/20260527-000005-memory-tool-guidance-prompt/thread.md new file mode 100644 index 00000000..2af43981 --- /dev/null +++ b/work-items/open/20260527-000005-memory-tool-guidance-prompt/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:05Z --> + +## Migrated + +Migrated from tickets/memory-tool-guidance-prompt.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000006-permission-default-policy/artifacts/.gitkeep b/work-items/open/20260527-000006-permission-default-policy/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/permission-default-policy.md b/work-items/open/20260527-000006-permission-default-policy/item.md similarity index 83% rename from tickets/permission-default-policy.md rename to work-items/open/20260527-000006-permission-default-policy/item.md index d46edfee..e80f386f 100644 --- a/tickets/permission-default-policy.md +++ b/work-items/open/20260527-000006-permission-default-policy/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000006-permission-default-policy +slug: permission-default-policy +title: Permission: allow-all 既定 policy への整理 +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:06Z +updated_at: 2026-05-27T00:00:06Z +assignee: null +legacy_ticket: tickets/permission-default-policy.md +--- + +## Migration reference + +- legacy_ticket: tickets/permission-default-policy.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # Permission: allow-all 既定 policy への整理 ## 背景 diff --git a/work-items/open/20260527-000006-permission-default-policy/thread.md b/work-items/open/20260527-000006-permission-default-policy/thread.md new file mode 100644 index 00000000..5b159edf --- /dev/null +++ b/work-items/open/20260527-000006-permission-default-policy/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:06Z --> + +## Migrated + +Migrated from tickets/permission-default-policy.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000007-pod-inbound-pod-event-dedup/artifacts/.gitkeep b/work-items/open/20260527-000007-pod-inbound-pod-event-dedup/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/pod-inbound-pod-event-dedup.md b/work-items/open/20260527-000007-pod-inbound-pod-event-dedup/item.md similarity index 87% rename from tickets/pod-inbound-pod-event-dedup.md rename to work-items/open/20260527-000007-pod-inbound-pod-event-dedup/item.md index fe066c26..c37ccd62 100644 --- a/tickets/pod-inbound-pod-event-dedup.md +++ b/work-items/open/20260527-000007-pod-inbound-pod-event-dedup/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000007-pod-inbound-pod-event-dedup +slug: pod-inbound-pod-event-dedup +title: Inbound PodEvent ハンドリングの重複を統合する +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:07Z +updated_at: 2026-05-27T00:00:07Z +assignee: null +legacy_ticket: tickets/pod-inbound-pod-event-dedup.md +--- + +## Migration reference + +- legacy_ticket: tickets/pod-inbound-pod-event-dedup.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # Inbound PodEvent ハンドリングの重複を統合する ## 背景 diff --git a/work-items/open/20260527-000007-pod-inbound-pod-event-dedup/thread.md b/work-items/open/20260527-000007-pod-inbound-pod-event-dedup/thread.md new file mode 100644 index 00000000..e21e2266 --- /dev/null +++ b/work-items/open/20260527-000007-pod-inbound-pod-event-dedup/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:07Z --> + +## Migrated + +Migrated from tickets/pod-inbound-pod-event-dedup.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000008-pod-scope-persistence-authority/artifacts/.gitkeep b/work-items/open/20260527-000008-pod-scope-persistence-authority/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/pod-scope-persistence-authority.md b/work-items/open/20260527-000008-pod-scope-persistence-authority/item.md similarity index 89% rename from tickets/pod-scope-persistence-authority.md rename to work-items/open/20260527-000008-pod-scope-persistence-authority/item.md index 4ee13a68..f18e5130 100644 --- a/tickets/pod-scope-persistence-authority.md +++ b/work-items/open/20260527-000008-pod-scope-persistence-authority/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000008-pod-scope-persistence-authority +slug: pod-scope-persistence-authority +title: Pod: scope 永続化 authority の整理 +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:08Z +updated_at: 2026-05-27T00:00:08Z +assignee: null +legacy_ticket: tickets/pod-scope-persistence-authority.md +--- + +## Migration reference + +- legacy_ticket: tickets/pod-scope-persistence-authority.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # Pod: scope 永続化 authority の整理 ## 背景 diff --git a/work-items/open/20260527-000008-pod-scope-persistence-authority/thread.md b/work-items/open/20260527-000008-pod-scope-persistence-authority/thread.md new file mode 100644 index 00000000..6e9d829d --- /dev/null +++ b/work-items/open/20260527-000008-pod-scope-persistence-authority/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:08Z --> + +## Migrated + +Migrated from tickets/pod-scope-persistence-authority.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000009-pod-session-fork/artifacts/.gitkeep b/work-items/open/20260527-000009-pod-session-fork/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/pod-session-fork.md b/work-items/open/20260527-000009-pod-session-fork/item.md similarity index 89% rename from tickets/pod-session-fork.md rename to work-items/open/20260527-000009-pod-session-fork/item.md index 0021b9af..1086b8cd 100644 --- a/tickets/pod-session-fork.md +++ b/work-items/open/20260527-000009-pod-session-fork/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000009-pod-session-fork +slug: pod-session-fork +title: Pod: 任意ターンからの Fork(複数ターン巻き戻し) +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:09Z +updated_at: 2026-05-27T00:00:09Z +assignee: null +legacy_ticket: tickets/pod-session-fork.md +--- + +## Migration reference + +- legacy_ticket: tickets/pod-session-fork.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # Pod: 任意ターンからの Fork(複数ターン巻き戻し) ## 背景 diff --git a/work-items/open/20260527-000009-pod-session-fork/thread.md b/work-items/open/20260527-000009-pod-session-fork/thread.md new file mode 100644 index 00000000..d067f59f --- /dev/null +++ b/work-items/open/20260527-000009-pod-session-fork/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:09Z --> + +## Migrated + +Migrated from tickets/pod-session-fork.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000010-prompt-eval-metrics/artifacts/.gitkeep b/work-items/open/20260527-000010-prompt-eval-metrics/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/prompt-eval-metrics.md b/work-items/open/20260527-000010-prompt-eval-metrics/item.md similarity index 93% rename from tickets/prompt-eval-metrics.md rename to work-items/open/20260527-000010-prompt-eval-metrics/item.md index f63d0de9..12471677 100644 --- a/tickets/prompt-eval-metrics.md +++ b/work-items/open/20260527-000010-prompt-eval-metrics/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000010-prompt-eval-metrics +slug: prompt-eval-metrics +title: Prompt / Workflow 評価メトリクスと改善 Offer +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:10Z +updated_at: 2026-05-27T00:00:10Z +assignee: null +legacy_ticket: tickets/prompt-eval-metrics.md +--- + +## Migration reference + +- legacy_ticket: tickets/prompt-eval-metrics.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # Prompt / Workflow 評価メトリクスと改善 Offer ## 背景 diff --git a/work-items/open/20260527-000010-prompt-eval-metrics/thread.md b/work-items/open/20260527-000010-prompt-eval-metrics/thread.md new file mode 100644 index 00000000..63b54caf --- /dev/null +++ b/work-items/open/20260527-000010-prompt-eval-metrics/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:10Z --> + +## Migrated + +Migrated from tickets/prompt-eval-metrics.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000011-session-todo-reminder/artifacts/.gitkeep b/work-items/open/20260527-000011-session-todo-reminder/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/session-todo-reminder.md b/work-items/open/20260527-000011-session-todo-reminder/item.md similarity index 92% rename from tickets/session-todo-reminder.md rename to work-items/open/20260527-000011-session-todo-reminder/item.md index ff4ca12a..c730659b 100644 --- a/tickets/session-todo-reminder.md +++ b/work-items/open/20260527-000011-session-todo-reminder/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000011-session-todo-reminder +slug: session-todo-reminder +title: セッション内 Task ツールの注意機構 +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:11Z +updated_at: 2026-05-27T00:00:11Z +assignee: null +legacy_ticket: tickets/session-todo-reminder.md +--- + +## Migration reference + +- legacy_ticket: tickets/session-todo-reminder.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # セッション内 Task ツールの注意機構 ## 背景 diff --git a/work-items/open/20260527-000011-session-todo-reminder/thread.md b/work-items/open/20260527-000011-session-todo-reminder/thread.md new file mode 100644 index 00000000..30b52b26 --- /dev/null +++ b/work-items/open/20260527-000011-session-todo-reminder/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:11Z --> + +## Migrated + +Migrated from tickets/session-todo-reminder.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000012-spawnpod-initial-run-confirmation/artifacts/.gitkeep b/work-items/open/20260527-000012-spawnpod-initial-run-confirmation/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/spawnpod-initial-run-confirmation.md b/work-items/open/20260527-000012-spawnpod-initial-run-confirmation/item.md similarity index 87% rename from tickets/spawnpod-initial-run-confirmation.md rename to work-items/open/20260527-000012-spawnpod-initial-run-confirmation/item.md index d268c14b..a4262067 100644 --- a/tickets/spawnpod-initial-run-confirmation.md +++ b/work-items/open/20260527-000012-spawnpod-initial-run-confirmation/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000012-spawnpod-initial-run-confirmation +slug: spawnpod-initial-run-confirmation +title: SpawnPod: initial Run delivery confirmation +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:12Z +updated_at: 2026-05-27T00:00:12Z +assignee: null +legacy_ticket: tickets/spawnpod-initial-run-confirmation.md +--- + +## Migration reference + +- legacy_ticket: tickets/spawnpod-initial-run-confirmation.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # SpawnPod: initial Run delivery confirmation ## 背景 diff --git a/work-items/open/20260527-000012-spawnpod-initial-run-confirmation/thread.md b/work-items/open/20260527-000012-spawnpod-initial-run-confirmation/thread.md new file mode 100644 index 00000000..8870382b --- /dev/null +++ b/work-items/open/20260527-000012-spawnpod-initial-run-confirmation/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:12Z --> + +## Migrated + +Migrated from tickets/spawnpod-initial-run-confirmation.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000013-tickets-sh-workitem-thread-mvp/artifacts/.gitkeep b/work-items/open/20260527-000013-tickets-sh-workitem-thread-mvp/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/tickets-sh-workitem-thread-mvp.md b/work-items/open/20260527-000013-tickets-sh-workitem-thread-mvp/item.md similarity index 94% rename from tickets/tickets-sh-workitem-thread-mvp.md rename to work-items/open/20260527-000013-tickets-sh-workitem-thread-mvp/item.md index 038039f0..13247fa3 100644 --- a/tickets/tickets-sh-workitem-thread-mvp.md +++ b/work-items/open/20260527-000013-tickets-sh-workitem-thread-mvp/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000013-tickets-sh-workitem-thread-mvp +slug: tickets-sh-workitem-thread-mvp +title: Ticket 管理: tickets.sh による WorkItem / Thread MVP +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:13Z +updated_at: 2026-05-27T00:00:13Z +assignee: null +legacy_ticket: tickets/tickets-sh-workitem-thread-mvp.md +--- + +## Migration reference + +- legacy_ticket: tickets/tickets-sh-workitem-thread-mvp.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # Ticket 管理: tickets.sh による WorkItem / Thread MVP ## 背景 diff --git a/work-items/open/20260527-000013-tickets-sh-workitem-thread-mvp/thread.md b/work-items/open/20260527-000013-tickets-sh-workitem-thread-mvp/thread.md new file mode 100644 index 00000000..b26349be --- /dev/null +++ b/work-items/open/20260527-000013-tickets-sh-workitem-thread-mvp/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:13Z --> + +## Migrated + +Migrated from tickets/tickets-sh-workitem-thread-mvp.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000014-tui-actionbar-transient-notice-api/artifacts/.gitkeep b/work-items/open/20260527-000014-tui-actionbar-transient-notice-api/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/tui-actionbar-transient-notice-api.md b/work-items/open/20260527-000014-tui-actionbar-transient-notice-api/item.md similarity index 85% rename from tickets/tui-actionbar-transient-notice-api.md rename to work-items/open/20260527-000014-tui-actionbar-transient-notice-api/item.md index ba22c8ba..8edbe478 100644 --- a/tickets/tui-actionbar-transient-notice-api.md +++ b/work-items/open/20260527-000014-tui-actionbar-transient-notice-api/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000014-tui-actionbar-transient-notice-api +slug: tui-actionbar-transient-notice-api +title: TUI: actionbar transient notice API +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:14Z +updated_at: 2026-05-27T00:00:14Z +assignee: null +legacy_ticket: tickets/tui-actionbar-transient-notice-api.md +--- + +## Migration reference + +- legacy_ticket: tickets/tui-actionbar-transient-notice-api.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # TUI: actionbar transient notice API ## 背景 diff --git a/work-items/open/20260527-000014-tui-actionbar-transient-notice-api/thread.md b/work-items/open/20260527-000014-tui-actionbar-transient-notice-api/thread.md new file mode 100644 index 00000000..00846369 --- /dev/null +++ b/work-items/open/20260527-000014-tui-actionbar-transient-notice-api/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:14Z --> + +## Migrated + +Migrated from tickets/tui-actionbar-transient-notice-api.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000015-tui-navigation-mode-design/artifacts/.gitkeep b/work-items/open/20260527-000015-tui-navigation-mode-design/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/tui-navigation-mode-design.md b/work-items/open/20260527-000015-tui-navigation-mode-design/item.md similarity index 85% rename from tickets/tui-navigation-mode-design.md rename to work-items/open/20260527-000015-tui-navigation-mode-design/item.md index a0d17b7d..c0a6999b 100644 --- a/tickets/tui-navigation-mode-design.md +++ b/work-items/open/20260527-000015-tui-navigation-mode-design/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000015-tui-navigation-mode-design +slug: tui-navigation-mode-design +title: TUI: navigation mode / block focus の設計 +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:15Z +updated_at: 2026-05-27T00:00:15Z +assignee: null +legacy_ticket: tickets/tui-navigation-mode-design.md +--- + +## Migration reference + +- legacy_ticket: tickets/tui-navigation-mode-design.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # TUI: navigation mode / block focus の設計 ## 背景 diff --git a/work-items/open/20260527-000015-tui-navigation-mode-design/thread.md b/work-items/open/20260527-000015-tui-navigation-mode-design/thread.md new file mode 100644 index 00000000..c98d4d88 --- /dev/null +++ b/work-items/open/20260527-000015-tui-navigation-mode-design/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:15Z --> + +## Migrated + +Migrated from tickets/tui-navigation-mode-design.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000016-tui-picker-live-pending-pods/artifacts/.gitkeep b/work-items/open/20260527-000016-tui-picker-live-pending-pods/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/tui-picker-live-pending-pods.md b/work-items/open/20260527-000016-tui-picker-live-pending-pods/item.md similarity index 86% rename from tickets/tui-picker-live-pending-pods.md rename to work-items/open/20260527-000016-tui-picker-live-pending-pods/item.md index a3dc75fa..94cce421 100644 --- a/tickets/tui-picker-live-pending-pods.md +++ b/work-items/open/20260527-000016-tui-picker-live-pending-pods/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000016-tui-picker-live-pending-pods +slug: tui-picker-live-pending-pods +title: TUI picker: live pending Pod の表示優先と状態補完 +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:16Z +updated_at: 2026-05-27T00:00:16Z +assignee: null +legacy_ticket: tickets/tui-picker-live-pending-pods.md +--- + +## Migration reference + +- legacy_ticket: tickets/tui-picker-live-pending-pods.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # TUI picker: live pending Pod の表示優先と状態補完 ## 背景 diff --git a/work-items/open/20260527-000016-tui-picker-live-pending-pods/thread.md b/work-items/open/20260527-000016-tui-picker-live-pending-pods/thread.md new file mode 100644 index 00000000..3151c830 --- /dev/null +++ b/work-items/open/20260527-000016-tui-picker-live-pending-pods/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:16Z --> + +## Migrated + +Migrated from tickets/tui-picker-live-pending-pods.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000017-tui-spawned-pod-panel/artifacts/.gitkeep b/work-items/open/20260527-000017-tui-spawned-pod-panel/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/tui-spawned-pod-panel.md b/work-items/open/20260527-000017-tui-spawned-pod-panel/item.md similarity index 87% rename from tickets/tui-spawned-pod-panel.md rename to work-items/open/20260527-000017-tui-spawned-pod-panel/item.md index f221c697..0aceae0a 100644 --- a/tickets/tui-spawned-pod-panel.md +++ b/work-items/open/20260527-000017-tui-spawned-pod-panel/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000017-tui-spawned-pod-panel +slug: tui-spawned-pod-panel +title: TUI: spawned child Pod の一覧と一時 attach +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:17Z +updated_at: 2026-05-27T00:00:17Z +assignee: null +legacy_ticket: tickets/tui-spawned-pod-panel.md +--- + +## Migration reference + +- legacy_ticket: tickets/tui-spawned-pod-panel.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # TUI: spawned child Pod の一覧と一時 attach ## 背景 diff --git a/work-items/open/20260527-000017-tui-spawned-pod-panel/thread.md b/work-items/open/20260527-000017-tui-spawned-pod-panel/thread.md new file mode 100644 index 00000000..da52ca45 --- /dev/null +++ b/work-items/open/20260527-000017-tui-spawned-pod-panel/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:17Z --> + +## Migrated + +Migrated from tickets/tui-spawned-pod-panel.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000018-tui-user-model-setup/artifacts/.gitkeep b/work-items/open/20260527-000018-tui-user-model-setup/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tickets/tui-user-model-setup.md b/work-items/open/20260527-000018-tui-user-model-setup/item.md similarity index 91% rename from tickets/tui-user-model-setup.md rename to work-items/open/20260527-000018-tui-user-model-setup/item.md index a96f7358..391085b7 100644 --- a/tickets/tui-user-model-setup.md +++ b/work-items/open/20260527-000018-tui-user-model-setup/item.md @@ -1,3 +1,22 @@ +--- +id: 20260527-000018-tui-user-model-setup +slug: tui-user-model-setup +title: TUI: ユーザーマニフェストのモデル設定 wizard +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:18Z +updated_at: 2026-05-27T00:00:18Z +assignee: null +legacy_ticket: tickets/tui-user-model-setup.md +--- + +## Migration reference + +- legacy_ticket: tickets/tui-user-model-setup.md +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + # TUI: ユーザーマニフェストのモデル設定 wizard ## 背景 diff --git a/work-items/open/20260527-000018-tui-user-model-setup/thread.md b/work-items/open/20260527-000018-tui-user-model-setup/thread.md new file mode 100644 index 00000000..8a767303 --- /dev/null +++ b/work-items/open/20260527-000018-tui-user-model-setup/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:18Z --> + +## Migrated + +Migrated from tickets/tui-user-model-setup.md. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000019-workspace-memory-lint-cli/artifacts/.gitkeep b/work-items/open/20260527-000019-workspace-memory-lint-cli/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/work-items/open/20260527-000019-workspace-memory-lint-cli/item.md b/work-items/open/20260527-000019-workspace-memory-lint-cli/item.md new file mode 100644 index 00000000..a526a792 --- /dev/null +++ b/work-items/open/20260527-000019-workspace-memory-lint-cli/item.md @@ -0,0 +1,28 @@ +--- +id: 20260527-000019-workspace-memory-lint-cli +slug: workspace-memory-lint-cli +title: ワークスペースのメモリーをLintするヘッドレスCLI +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:19Z +updated_at: 2026-05-27T00:00:19Z +assignee: null +legacy_ticket: null +--- + +## Migration reference + +- legacy_ticket: null +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + +# ワークスペースのメモリーをLintするヘッドレスCLI + +## Background + +This work item was migrated from an unfinished TODO.md entry that did not have a dedicated legacy ticket file. + +## Acceptance criteria + +- Define the concrete requirements before implementation. diff --git a/work-items/open/20260527-000019-workspace-memory-lint-cli/thread.md b/work-items/open/20260527-000019-workspace-memory-lint-cli/thread.md new file mode 100644 index 00000000..022593fd --- /dev/null +++ b/work-items/open/20260527-000019-workspace-memory-lint-cli/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:19Z --> + +## Migrated + +Migrated from TODO.md entry without a legacy ticket file. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000020-system-reminder-injection-generalization/artifacts/.gitkeep b/work-items/open/20260527-000020-system-reminder-injection-generalization/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/work-items/open/20260527-000020-system-reminder-injection-generalization/item.md b/work-items/open/20260527-000020-system-reminder-injection-generalization/item.md new file mode 100644 index 00000000..9f6e84cf --- /dev/null +++ b/work-items/open/20260527-000020-system-reminder-injection-generalization/item.md @@ -0,0 +1,28 @@ +--- +id: 20260527-000020-system-reminder-injection-generalization +slug: system-reminder-injection-generalization +title: system-reminder 注入機構の汎用化(2件目の利用者が出た時に検討。タグ形式 `<system-reminder>...</system-reminder>` の規約は session-todo-reminder で先行確立。注入された Item は worker.history に append する方針) +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:20Z +updated_at: 2026-05-27T00:00:20Z +assignee: null +legacy_ticket: null +--- + +## Migration reference + +- legacy_ticket: null +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + +# system-reminder 注入機構の汎用化(2件目の利用者が出た時に検討。タグ形式 `<system-reminder>...</system-reminder>` の規約は session-todo-reminder で先行確立。注入された Item は worker.history に append する方針) + +## Background + +This work item was migrated from an unfinished TODO.md entry that did not have a dedicated legacy ticket file. + +## Acceptance criteria + +- Define the concrete requirements before implementation. diff --git a/work-items/open/20260527-000020-system-reminder-injection-generalization/thread.md b/work-items/open/20260527-000020-system-reminder-injection-generalization/thread.md new file mode 100644 index 00000000..b93af586 --- /dev/null +++ b/work-items/open/20260527-000020-system-reminder-injection-generalization/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:20Z --> + +## Migrated + +Migrated from TODO.md entry without a legacy ticket file. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000021-bash-tool-editing-guidance/artifacts/.gitkeep b/work-items/open/20260527-000021-bash-tool-editing-guidance/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/work-items/open/20260527-000021-bash-tool-editing-guidance/item.md b/work-items/open/20260527-000021-bash-tool-editing-guidance/item.md new file mode 100644 index 00000000..e48fb42d --- /dev/null +++ b/work-items/open/20260527-000021-bash-tool-editing-guidance/item.md @@ -0,0 +1,28 @@ +--- +id: 20260527-000021-bash-tool-editing-guidance +slug: bash-tool-editing-guidance +title: Bashツールがファイル編集に常用されている問題をdesciptionで抑制 +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:21Z +updated_at: 2026-05-27T00:00:21Z +assignee: null +legacy_ticket: null +--- + +## Migration reference + +- legacy_ticket: null +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + +# Bashツールがファイル編集に常用されている問題をdesciptionで抑制 + +## Background + +This work item was migrated from an unfinished TODO.md entry that did not have a dedicated legacy ticket file. + +## Acceptance criteria + +- Define the concrete requirements before implementation. diff --git a/work-items/open/20260527-000021-bash-tool-editing-guidance/thread.md b/work-items/open/20260527-000021-bash-tool-editing-guidance/thread.md new file mode 100644 index 00000000..f43b546f --- /dev/null +++ b/work-items/open/20260527-000021-bash-tool-editing-guidance/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:21Z --> + +## Migrated + +Migrated from TODO.md entry without a legacy ticket file. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000022-manifest-profiles/artifacts/.gitkeep b/work-items/open/20260527-000022-manifest-profiles/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/work-items/open/20260527-000022-manifest-profiles/item.md b/work-items/open/20260527-000022-manifest-profiles/item.md new file mode 100644 index 00000000..0b54960e --- /dev/null +++ b/work-items/open/20260527-000022-manifest-profiles/item.md @@ -0,0 +1,28 @@ +--- +id: 20260527-000022-manifest-profiles +slug: manifest-profiles +title: 事前定義したManifestをProfile的に扱い、Orchestrator/Coder/Researcherで別々のモデル/設定を使わせる運用ができるようにする +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:22Z +updated_at: 2026-05-27T00:00:22Z +assignee: null +legacy_ticket: null +--- + +## Migration reference + +- legacy_ticket: null +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + +# 事前定義したManifestをProfile的に扱い、Orchestrator/Coder/Researcherで別々のモデル/設定を使わせる運用ができるようにする + +## Background + +This work item was migrated from an unfinished TODO.md entry that did not have a dedicated legacy ticket file. + +## Acceptance criteria + +- Define the concrete requirements before implementation. diff --git a/work-items/open/20260527-000022-manifest-profiles/thread.md b/work-items/open/20260527-000022-manifest-profiles/thread.md new file mode 100644 index 00000000..52be7a34 --- /dev/null +++ b/work-items/open/20260527-000022-manifest-profiles/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:22Z --> + +## Migrated + +Migrated from TODO.md entry without a legacy ticket file. No legacy review file was present at migration time. + +--- diff --git a/work-items/open/20260527-000023-multi-pod-view-ui/artifacts/.gitkeep b/work-items/open/20260527-000023-multi-pod-view-ui/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/work-items/open/20260527-000023-multi-pod-view-ui/item.md b/work-items/open/20260527-000023-multi-pod-view-ui/item.md new file mode 100644 index 00000000..1cdcbb5b --- /dev/null +++ b/work-items/open/20260527-000023-multi-pod-view-ui/item.md @@ -0,0 +1,28 @@ +--- +id: 20260527-000023-multi-pod-view-ui +slug: multi-pod-view-ui +title: 複数のPodのViewを行き来できるUI +status: open +kind: task +priority: P2 +labels: [migrated] +created_at: 2026-05-27T00:00:23Z +updated_at: 2026-05-27T00:00:23Z +assignee: null +legacy_ticket: null +--- + +## Migration reference + +- legacy_ticket: null +- migrated_from: TODO.md / tickets directory migration on 2026-05-27 + +# 複数のPodのViewを行き来できるUI + +## Background + +This work item was migrated from an unfinished TODO.md entry that did not have a dedicated legacy ticket file. + +## Acceptance criteria + +- Define the concrete requirements before implementation. diff --git a/work-items/open/20260527-000023-multi-pod-view-ui/thread.md b/work-items/open/20260527-000023-multi-pod-view-ui/thread.md new file mode 100644 index 00000000..ceb2c1b9 --- /dev/null +++ b/work-items/open/20260527-000023-multi-pod-view-ui/thread.md @@ -0,0 +1,7 @@ +<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:23Z --> + +## Migrated + +Migrated from TODO.md entry without a legacy ticket file. No legacy review file was present at migration time. + +---