Open
Conversation
- Add authoritative design specifications in docs/design/ (cli, run, output, task) with a README index - Update AGENTS.md and README.md to reflect task management and subcommand-based CLI - Update CHANGELOG.md with unreleased task management entries and breaking CLI change notes - Remove install target from Makefile (use go install manually) - Fix "Claude CLI" → "Claude Code CLI" wording in main.go
Introduce `lorah task` subcommand with full CRUD operations, JSON storage, and markdown/JSON output formatters. Refactor loop internals into dedicated packages (loop, task) with comprehensive test coverage. Add .lorah/ config directory with prompt, settings, and task state files.
Add missing TestPhaseJSONOmitEmpty and TestSectionJSONOmitEmpty tests to task_test.go per the core types test spec. All other required tests were already present from the prior implementation commit.
Implementation was already present from a prior agent; verified all tests pass against the spec and marked the task completed.
Expand TestLoadExistingFile to verify all TaskList fields (description, phases, sections, version, lastUpdated). Add TestSaveFilePermissions to verify the file is written with 0644 permissions.
Implementation was already present from prior overzealous agent; verified all tests pass against spec and marked task completed.
Tests for Create, Get, Update, Delete in json_storage_test.go were already written by an overzealous prior agent alongside the full implementation. Verified all tests pass; marked task completed.
Prior agent already wrote the full Create/Get/Update/Delete implementation in json_storage.go. Verified all tests pass and marked the task completed.
Added TestListNoFilter, TestListFilterByMultipleStatuses, and TestListFilterCombined to cover cases missing from prior agent's work.
3195d53 to
b41c387
Compare
…tests Prior overzealous agent had already written the full List implementation in json_storage.go. Verified all tests pass against spec and marked task completed.
Prior agent already wrote all formatter tests and implementation in format.go and format_test.go. Verified tests cover all spec requirements for FormatTaskMarkdown and FormatTaskJSON and all tests pass.
Add missing subtests to TestFormatListMarkdown: phase/section hex ID fallback, tasks with no phase under (none), tasks without section directly under phase heading, bare bullets for tasks without notes, and ordering by phase/section array position.
Overzealous prior agent already wrote TestFormatListMarkdownFlat and TestFormatListJSON tests and full implementations. All spec requirements covered; all tests pass.
… all tests Prior overzealous agent already implemented renderFlatList and FormatListJSON in internal/task/format.go. Verified all tests pass; marked task completed.
Add section description output in renderGrouped when includePhaseDesc is true, so FormatExportMarkdown renders section descriptions below section headings.
Added TestHandleTaskHelp (--help/-h returns 0, currently fails) and TestDeleteByID/TestDeleteCmdNotFound/TestDeleteMissingID. Added deleteCmd stub and "delete" case to HandleTask switch in cmd.go for compilation.
Add --help/-help/-h handling to HandleTask (returns exit 0) and implement deleteCmd with ID validation and storage.Delete call.
…son, and invalid status
Overzealous prior agent had already written most get tests; strengthened TestGetByID to verify the subject appears as a markdown H1 heading per spec.
…ontext Added three missing tests: TestCreateWithStatus (--status=in_progress), TestCreateWithExistingSection (--section with existing section), and TestCreateSectionWithoutPhaseContext (--section without phase returns 1). The last test fails as expected — implementation lacks the phase context validation required by spec.
Add guard that returns 1 with an error message when --section is provided without a phase context (--phase or --phase-name), per task.md spec.
Add tests for --phase-description, --section-description, section PhaseID assignment, output ordering, and --section-name without phase context. TestCreateSectionNameWithoutPhaseContext fails as expected — implementation does not yet guard --section-name without phase context.
Implementation was already present from prior overzealous agent; verified all tests pass and marked task completed.
Return exit code 1 when metadata flags are used without their required dependencies: --phase-name/--phase-description require --phase, --section requires --phase, and --section-name/--section-description require --section. Guards are placed before any storage operations to prevent partial writes.
Prior overzealous agent already wrote all 3 delete tests (TestDeleteByID, TestDeleteCmdNotFound, TestDeleteMissingID) and the full deleteCmd implementation.
…ptions Overzealous prior agent had already written TestExportBasic, TestExportStatusFilter, TestExportToFile, and the full exportCmd implementation. Added two missing tests: TestExportStatusRepeatable (verifies --status can be repeated with OR semantics) and TestExportPhaseAndSectionDescriptions (verifies project H1, phase descriptions, and section descriptions appear in export output). All tests pass.
Prior overzealous agent had already written the full exportCmd implementation. Verified all 5 export tests pass; marked task completed.
Prior overzealous agent had already fully wired up taskCmd in main.go with NewJSONStorage and HandleTask. Verified all tests pass.
Add delete subcommand to CLI docs and help text, update interrupt handling spec to distinguish first/second interrupt behavior, clarify task list ordering spec to use insertion order. Remove extra newline before loop error output, remove color from Claude text/thinking sections, and capitalize unknown subcommand error message.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.