6.2 KiB
Tasks: Insert Command for Positional Text Injection
Input: Design documents from /specs/005-add-insert-command/
Prerequisites: plan.md (required), spec.md (required), research.md, data-model.md, contracts/
Tests: Contract and integration tests included per spec emphasis on preview determinism, ledger integrity, and Unicode handling.
Organization: Tasks are grouped by user story to enable independent implementation and testing of each story.
Phase 1: Setup (Shared Infrastructure)
Purpose: Establish initial command scaffolding and directories.
- T001 Create insert package scaffolding
internal/insert/doc.go - T002 Add placeholder Cobra command entry point
cmd/insert.go
Phase 2: Foundational (Blocking Prerequisites)
Purpose: Core parsing, summary structures, and helpers needed by all stories.
- T003 Define
InsertRequestbuilder and execution mode helpers ininternal/insert/request.go - T004 Implement
InsertSummary, preview entries, and conflict types ininternal/insert/summary.go - T005 Build Unicode-aware position parsing and normalization utilities in
internal/insert/positions.go
Checkpoint: Foundation ready — user story implementation can now begin.
Phase 3: User Story 1 – Insert Text at Target Position (Priority: P1) 🎯 MVP
Goal: Provide preview + apply flow that inserts text at specified positions with Unicode handling.
Independent Test: renamer insert 3 _tag --dry-run confirms preview insertion per code point ordering; --yes applies and ledger logs metadata.
Tests
- T006 [P] [US1] Add contract preview/apply coverage in
tests/contract/insert_command_test.go - T007 [P] [US1] Add integration flow test for positional insert in
tests/integration/insert_flow_test.go
Implementation
- T008 [US1] Implement planning engine to compute proposed names in
internal/insert/engine.go - T009 [US1] Render preview output with highlighted segments in
internal/insert/preview.go - T010 [US1] Apply filesystem changes with ledger logging in
internal/insert/apply.go - T011 [US1] Wire Cobra command to parse args, perform preview/apply in
cmd/insert.go
Checkpoint: User Story 1 functionality testable end-to-end.
Phase 4: User Story 2 – Automation-Friendly Batch Inserts (Priority: P2)
Goal: Ensure ledger metadata, undo, and exit codes support automation.
Independent Test: renamer insert $ _ARCHIVE --yes --path ./fixtures exits 0 with ledger metadata; renamer undo restores filenames.
Tests
- T012 [P] [US2] Extend contract tests for ledger metadata & exit codes in
tests/contract/insert_ledger_test.go - T013 [P] [US2] Add automation/undo integration scenario in
tests/integration/insert_undo_test.go
Implementation
- T014 [US2] Persist position token and inserted text in ledger metadata via
internal/insert/apply.go - T015 [US2] Enhance undo CLI feedback for insert batches in
cmd/undo.go - T016 [US2] Ensure zero-match runs exit
0with notice incmd/insert.go
Checkpoint: User Stories 1 & 2 independently verifiable.
Phase 5: User Story 3 – Validate Positions and Multilingual Inputs (Priority: P3)
Goal: Robust validation, conflict detection, and messaging for out-of-range or conflicting inserts.
Independent Test: Invalid positions produce descriptive errors; duplicate targets block apply; Chinese filenames preview correctly.
Tests
- T017 [P] [US3] Add validation/conflict contract coverage in
tests/contract/insert_validation_test.go - T018 [P] [US3] Add conflict-blocking integration scenario in
tests/integration/insert_validation_test.go
Implementation
- T019 [US3] Implement parsing + error messaging for position tokens in
internal/insert/parser.go - T020 [US3] Detect conflicting targets and report warnings in
internal/insert/conflicts.go - T021 [US3] Surface validation failures and conflict gating in
cmd/insert.go
Checkpoint: All user stories function with robust validation.
Phase 6: Polish & Cross-Cutting Concerns
Purpose: Documentation, tooling, and quality improvements.
- T022 Update CLI flags documentation for insert command in
docs/cli-flags.md - T023 Add insert smoke test script
scripts/smoke-test-insert.sh - T024 Run gofmt and
go test ./...from repo root./
Dependencies & Execution Order
Phase Dependencies
- Phase 1 (Setup) → groundwork for new command/package.
- Phase 2 (Foundational) → required before user story work.
- Phase 3 (US1) → delivers MVP after foundational tasks.
- Phase 4 (US2) → builds on US1 for automation support.
- Phase 5 (US3) → extends validation/conflict handling.
- Phase 6 (Polish) → final documentation and quality checks.
User Story Dependencies
- US1 depends on foundational tasks only.
- US2 depends on US1 implementation (ledger/apply logic).
- US3 depends on US1 preview/apply and US2 ledger updates.
Task Dependencies (selected)
- T008 requires T003–T005.
- T009, T010 depend on T008.
- T011 depends on T008–T010.
- T014 depends on T010.
- T015 depends on T014.
- T019 depends on T003, T005.
- T020 depends on T008, T009.
- T021 depends on T019–T020.
Parallel Execution Examples
- Within US1, tasks T006 and T007 can run in parallel once T011 is in progress.
- Within US2, tests T012/T013 may execute while T014–T016 are implemented.
- Within US3, contract vs integration tests (T017/T018) can proceed concurrently after T021 adjustments.
Implementation Strategy
MVP (US1)
- Complete Phases 1–2 foundation.
- Deliver Phase 3 (US1) to enable core insert functionality.
- Validate via contract/integration tests (T006/T007) and manual dry-run/apply checks.
Incremental Delivery
- Phase 4 adds automation/undo guarantees after MVP.
- Phase 5 hardens validation and conflict management.
- Phase 6 completes documentation, smoke coverage, and regression checks.
Parallel Approach
- One developer handles foundational + US1 engine.
- Another focuses on test coverage and CLI wiring after foundations.
- Additional developer can own US2 automation tasks while US1 finalizes, then US3 validation enhancements.