diff --git a/.yoi/tickets/open/20260605-203006-remove-tickets-sh/artifacts/delegation-intent.md b/.yoi/tickets/open/20260605-203006-remove-tickets-sh/artifacts/delegation-intent.md new file mode 100644 index 00000000..ec85c573 --- /dev/null +++ b/.yoi/tickets/open/20260605-203006-remove-tickets-sh/artifacts/delegation-intent.md @@ -0,0 +1,92 @@ +# Delegation intent: remove `tickets.sh` + +## Classification + +`implementation-ready` after storage migration. + +The prerequisite migration is complete: active Ticket records live under `.yoi/tickets/`, the Rust `yoi ticket` CLI has parity, and `tickets.sh` is only a transitional shim. Keeping it now leaves an unnecessary second mutation path. + +## Intent + +Delete `tickets.sh` and update active documentation, project instructions, tests, and validation references so the repository uses the typed Rust Ticket backend through `yoi ticket ...` and Ticket tools. + +## Worktree / branch + +- worktree: `/home/hare/Projects/yoi/.worktree/remove-tickets-sh` +- branch: `work/remove-tickets-sh` + +This ticket will edit tracked `.yoi/tickets` records and may edit `.yoi/ticket.config.toml` only if necessary. Do not read or edit `.yoi/memory/`; it is ignored generated memory state and is not part of this cleanup. + +## Requirements + +- Delete repository-root `tickets.sh`. +- Remove or update every active doc/workflow/test/project-instruction reference that tells users, maintainers, or agents to run `./tickets.sh`. +- Replace validation examples with `yoi ticket doctor`. +- Replace lifecycle examples with `yoi ticket create/list/show/comment/review/status/close/doctor`. +- Remove shell compatibility tests that execute `tickets.sh`, or port them to Rust backend / `yoi ticket ...` coverage. +- Ensure no production code shells out to `tickets.sh`. +- Preserve historical Ticket thread/artifact references when they are closed historical context; do not mass-rewrite old records just for path hygiene. +- Keep `.yoi/tickets/` as the active storage root and avoid reintroducing `work-items/` as mutable storage. +- Update `work-items/README.md` so it no longer points to the transitional script. + +## Active references to inspect/update + +Current active references include at least: + +- `AGENTS.md` + - currently says `.yoi/tickets/` and `tickets.sh` are authoritative and lists `./tickets.sh ...` commands. + - Update to `yoi ticket ...` as the command path; `.yoi/tickets/` remains storage/project-record authority. +- `README.md` + - update dogfooding/doctor examples from `./tickets.sh doctor` to `yoi ticket doctor`. +- `docs/development/work-items.md` + - remove the `tickets.sh` maintainer CLI section or turn it into a historical note only if needed. + - normal user path remains TUI role actions / Ticket tools / workflows. +- `docs/development/validation.md` + - update validation command examples. +- `crates/workflow/README.md` +- `crates/lint-common/README.md` +- tests under `crates/ticket` that mention or execute `tickets.sh`. + +Historical/closed records and old report artifacts may still mention `tickets.sh` or `work-items/`; leave them alone unless an active test/doc depends on them. + +## Non-goals + +- Moving storage; already done. +- Adding Ticket backend features. +- TUI UI changes. +- External tracker/provider support. +- Rewriting closed historical Ticket threads/artifacts. + +## Validation + +Run at least: + +- `cargo test -p ticket` +- `cargo test -p yoi ticket` +- `cargo test -p pod ticket --lib` +- `cargo check --workspace --all-targets` +- `cargo fmt --check` +- `git diff --check` +- `cargo build -p yoi` +- `target/debug/yoi ticket doctor` or built binary equivalent + +Run `nix build .#yoi --no-link` if feasible. + +Also manually check: + +- `test ! -e tickets.sh` +- `rg "tickets\.sh|./tickets.sh"` only returns closed historical records/report artifacts, or no active references. +- No active docs/workflows/AGENTS instructions present `tickets.sh` as a command. +- No tests or production code execute `./tickets.sh`. + +## Completion report + +Report: + +- worktree path / branch; +- commit hash; +- deleted script path; +- tests/docs/instructions updated; +- remaining `tickets.sh` references and why they are historical/acceptable, if any; +- validation results; +- whether the umbrella `yoi-local-ticket-backend-migration` can be closed. diff --git a/.yoi/tickets/open/20260605-203006-remove-tickets-sh/item.md b/.yoi/tickets/open/20260605-203006-remove-tickets-sh/item.md index 948833a1..2279554b 100644 --- a/.yoi/tickets/open/20260605-203006-remove-tickets-sh/item.md +++ b/.yoi/tickets/open/20260605-203006-remove-tickets-sh/item.md @@ -7,7 +7,7 @@ kind: task priority: P1 labels: [ticket, cleanup, cli] created_at: 2026-06-05T20:30:06Z -updated_at: 2026-06-05T20:30:06Z +updated_at: 2026-06-05T21:52:55Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/open/20260605-203006-remove-tickets-sh/thread.md b/.yoi/tickets/open/20260605-203006-remove-tickets-sh/thread.md index 6c371d61..a6115a5d 100644 --- a/.yoi/tickets/open/20260605-203006-remove-tickets-sh/thread.md +++ b/.yoi/tickets/open/20260605-203006-remove-tickets-sh/thread.md @@ -4,4 +4,17 @@ Created by tickets.sh create. +--- + + + +## Plan + +Preflight result: `implementation-ready` after storage migration. + +`yoi ticket` has parity and active storage has moved to `.yoi/tickets/`, so `tickets.sh` should now be removed to eliminate the temporary second mutation path. Active docs/project instructions/tests should use `yoi ticket ...`; historical closed records and old report artifacts do not need mass rewriting. + +Detailed delegation intent is recorded in `artifacts/delegation-intent.md`. + + ---