Compare commits

...

2 Commits

Author SHA1 Message Date
Thomas Mickley-Doyle
fcb71cda2a Update repo for eval data 2025-04-22 16:08:58 -05:00
Thomas Mickley-Doyle
5145a8dfca Add eval example for cli todo app 2025-04-22 11:58:26 -05:00
4 changed files with 16 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
url = "https://github.com/tmickleydoyle/cli-todo-app.git"
revision = "0e9cb6528a28a34ca491d184263993775dbde9c4"
language_extension = "rs"

View File

@@ -0,0 +1,5 @@
- A complete command-line todo application was implemented in Rust featuring core functionality for adding tasks, listing tasks with filtering options, and marking tasks as complete, with persistent local storage using JSON.
- Essential dependencies were added to the project including clap for CLI argument parsing, serde/serde_json for data serialization, chrono for timestamp handling, and uuid for generating unique task identifiers.
- A task management system was established through a Task struct containing ID, description, creation timestamp, and status fields, coupled with file-based storage logic that handles atomic read/write operations to maintain data consistency.
- Comprehensive user documentation was provided in the README file, detailing installation instructions, command usage examples, project structure explanations, and licensing information.
- Basic error handling was implemented for file I/O operations and data parsing failures, along with empty state detection to improve user experience when no tasks exist.

View File

@@ -0,0 +1 @@
Create a new Rust project for a command-line todo list application. The app should support adding new tasks, listing all tasks, and marking tasks as complete. Tasks should be stored in a local file using JSON or TOML for persistence. Each task should have a unique ID, a description, a creation timestamp, and a status indicating whether it's pending or completed. Use common Rust libraries for CLI argument parsing and data serialization. Organize the code in a modular way with separate files or modules for task definitions and storage logic. Include a README file in the project to explain how to use the todo commands.

View File

@@ -0,0 +1,7 @@
- The first tool call should be to path search for "Cargo.toml" to identify the Rust projects root directory and validate its structure, ensuring no assumptions are made about file locations.
- After confirming the project root, search for and verify paths to critical implementation files: src/main.rs, src/cli.rs, src/storage.rs, and src/task.rs before reading or modifying their contents.
- When adding dependencies, first read the existing Cargo.toml contents to avoid version conflicts, then incrementally insert clap, serde, chrono, and uuid with explicit version/feature specs.
- For the task storage system, locate or create tasks.json only after confirming the projects working directory via path checks, then implement read/write operations with atomic file handling.
- When designing the CLI, derive command structures in cli.rs (or similar file) after validating the files existence and checking for preexisting argument-parsing logic to avoid duplication.
- Integrate components in main.rs only after confirming module paths (mod cli; mod storage; mod task;) and ensuring no breaking changes to existing entry-point logic.
- Validate documentation updates by first locating README.md in the project root, then inserting usage examples and installation steps while preserving any prior content.