Skip to content

Task management#13

Open
cpplain wants to merge 38 commits intomainfrom
task-management
Open

Task management#13
cpplain wants to merge 38 commits intomainfrom
task-management

Conversation

@cpplain
Copy link
Owner

@cpplain cpplain commented Mar 19, 2026

No description provided.

cpplain added 9 commits March 18, 2026 22:25
- 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.
cpplain added 20 commits March 19, 2026 21:10
…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.
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.
cpplain added 9 commits March 19, 2026 21:43
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant