UAT: Missing builtin file tools - move_file, copy_file, create_directory, delete_directory #4038

Open
opened 2026-04-06 08:58:44 +00:00 by freemo · 1 comment
Owner

Summary

The specification defines 9 builtin file tools in the local/file-ops skill, but the implementation only provides 6. The following 4 tools are missing from src/cleveragents/tool/builtins/file_tools.py:

  • move_file (rename/move a file)
  • copy_file (copy a file)
  • create_directory (create a directory)
  • delete_directory (delete a directory)

Backlog note: This issue was discovered during autonomous operation
on milestone UAT Testing. It does not block milestone completion and has been
placed in the backlog for human review and future milestone assignment.

Metadata

  • Branch: feat/builtin-file-tools-missing
  • Commit Message: feat(tool): add move_file, copy_file, create_directory, delete_directory builtin tools
  • Milestone: None (Backlog)
  • Parent Epic: TBD — requires manual linking

Subtasks

  • Implement builtin/file-move tool handler and spec
  • Implement builtin/file-copy tool handler and spec
  • Implement builtin/dir-create tool handler and spec
  • Implement builtin/dir-delete tool handler and spec
  • Add all 4 tools to ALL_FILE_TOOLS list
  • Add path traversal protection to all 4 new tools
  • Add ChangeSet capture support for all 4 new tools
  • Add BDD tests for all 4 new tools in features/tool_builtins.feature
  • Update register_file_tools count from 6 to 10 (or keep at 9 if file-search is excluded from the spec count)

Description

Specification Reference

The specification (docs/specification.md, lines 7240-7248) defines the following tools for the local/file-ops skill:

Tool Source Read-Only Writes Checkpoint
read_file builtin
write_file builtin file
edit_file builtin file
delete_file builtin file
move_file builtin file
copy_file builtin file
create_directory builtin file
list_directory builtin
delete_directory builtin file

The specification also references these tools in multiple other places (lines 7289-7293, 7329-7337, 7403-7427, 19476-19477, 22002-22010, 23155-23156).

Current Implementation

src/cleveragents/tool/builtins/file_tools.py only implements 6 tools:

  • builtin/file-read
  • builtin/file-write
  • builtin/file-edit
  • builtin/file-delete
  • builtin/file-list
  • builtin/file-search

Missing Tools

The following 4 tools are completely absent from the implementation:

  1. move_file — Rename/move a file within the sandbox. Spec signature: move_file(source: str, destination: str) -> None
  2. copy_file — Copy a file within the sandbox. Spec signature: copy_file(source: str, destination: str) -> None
  3. create_directory — Create a directory. Spec signature: create_directory(path: str) -> None
  4. delete_directory — Delete a directory (optionally recursive). Spec signature: delete_directory(path: str, recursive: bool = False) -> None

Steps to Reproduce

from cleveragents.tool.builtins.file_tools import ALL_FILE_TOOLS
tool_names = [t.name for t in ALL_FILE_TOOLS]
print(tool_names)
# ['builtin/file-read', 'builtin/file-write', 'builtin/file-edit', 
#  'builtin/file-delete', 'builtin/file-list', 'builtin/file-search']
# Missing: move, copy, create_dir, delete_dir

Expected Behavior

ALL_FILE_TOOLS should contain at least 9 tools including move_file, copy_file, create_directory, and delete_directory.

Actual Behavior

ALL_FILE_TOOLS contains only 6 tools. The 4 missing tools are not implemented anywhere in the codebase.

Impact

Agents using the local/file-ops skill cannot:

  • Move or rename files within the sandbox
  • Copy files within the sandbox
  • Create new directories
  • Delete directories

These are fundamental file system operations that the specification guarantees will be available.

Definition of Done

  • All 4 missing tools are implemented with path traversal protection
  • All 4 tools are added to ALL_FILE_TOOLS
  • ChangeSet capture works for all 4 new write tools
  • BDD tests cover all 4 new tools
  • PR merged
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Summary The specification defines 9 builtin file tools in the `local/file-ops` skill, but the implementation only provides 6. The following 4 tools are missing from `src/cleveragents/tool/builtins/file_tools.py`: - `move_file` (rename/move a file) - `copy_file` (copy a file) - `create_directory` (create a directory) - `delete_directory` (delete a directory) > **Backlog note:** This issue was discovered during autonomous operation > on milestone UAT Testing. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. ## Metadata - **Branch**: `feat/builtin-file-tools-missing` - **Commit Message**: `feat(tool): add move_file, copy_file, create_directory, delete_directory builtin tools` - **Milestone**: None (Backlog) - **Parent Epic**: TBD — requires manual linking ## Subtasks - [ ] Implement `builtin/file-move` tool handler and spec - [ ] Implement `builtin/file-copy` tool handler and spec - [ ] Implement `builtin/dir-create` tool handler and spec - [ ] Implement `builtin/dir-delete` tool handler and spec - [ ] Add all 4 tools to `ALL_FILE_TOOLS` list - [ ] Add path traversal protection to all 4 new tools - [ ] Add ChangeSet capture support for all 4 new tools - [ ] Add BDD tests for all 4 new tools in `features/tool_builtins.feature` - [ ] Update `register_file_tools` count from 6 to 10 (or keep at 9 if file-search is excluded from the spec count) ## Description ### Specification Reference The specification (docs/specification.md, lines 7240-7248) defines the following tools for the `local/file-ops` skill: | Tool | Source | Read-Only | Writes | Checkpoint | |---|---|---|---|---| | `read_file` | builtin | ✓ | — | — | | `write_file` | builtin | — | ✓ | file | | `edit_file` | builtin | — | ✓ | file | | `delete_file` | builtin | — | ✓ | file | | `move_file` | builtin | — | ✓ | file | | `copy_file` | builtin | — | ✓ | file | | `create_directory` | builtin | — | ✓ | file | | `list_directory` | builtin | ✓ | — | — | | `delete_directory` | builtin | — | ✓ | file | The specification also references these tools in multiple other places (lines 7289-7293, 7329-7337, 7403-7427, 19476-19477, 22002-22010, 23155-23156). ### Current Implementation `src/cleveragents/tool/builtins/file_tools.py` only implements 6 tools: - `builtin/file-read` - `builtin/file-write` - `builtin/file-edit` - `builtin/file-delete` - `builtin/file-list` - `builtin/file-search` ### Missing Tools The following 4 tools are completely absent from the implementation: 1. **`move_file`** — Rename/move a file within the sandbox. Spec signature: `move_file(source: str, destination: str) -> None` 2. **`copy_file`** — Copy a file within the sandbox. Spec signature: `copy_file(source: str, destination: str) -> None` 3. **`create_directory`** — Create a directory. Spec signature: `create_directory(path: str) -> None` 4. **`delete_directory`** — Delete a directory (optionally recursive). Spec signature: `delete_directory(path: str, recursive: bool = False) -> None` ### Steps to Reproduce ```python from cleveragents.tool.builtins.file_tools import ALL_FILE_TOOLS tool_names = [t.name for t in ALL_FILE_TOOLS] print(tool_names) # ['builtin/file-read', 'builtin/file-write', 'builtin/file-edit', # 'builtin/file-delete', 'builtin/file-list', 'builtin/file-search'] # Missing: move, copy, create_dir, delete_dir ``` ### Expected Behavior `ALL_FILE_TOOLS` should contain at least 9 tools including `move_file`, `copy_file`, `create_directory`, and `delete_directory`. ### Actual Behavior `ALL_FILE_TOOLS` contains only 6 tools. The 4 missing tools are not implemented anywhere in the codebase. ### Impact Agents using the `local/file-ops` skill cannot: - Move or rename files within the sandbox - Copy files within the sandbox - Create new directories - Delete directories These are fundamental file system operations that the specification guarantees will be available. ## Definition of Done - [ ] All 4 missing tools are implemented with path traversal protection - [ ] All 4 tools are added to `ALL_FILE_TOOLS` - [ ] ChangeSet capture works for all 4 new write tools - [ ] BDD tests cover all 4 new tools - [ ] PR merged - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
Author
Owner

⚠️ Orphan Issue — Manual Linking Required

This issue was created by an automated agent and does not yet have a parent Epic linked. Per CONTRIBUTING.md, orphan issues are not permitted.

A human reviewer must:

  1. Identify the appropriate parent Epic for the local/file-ops skill / builtin file tools work
  2. Create the dependency link so that this issue (#4038) blocks the parent Epic (child blocks parent direction)

The relevant area is the local/file-ops skill and src/cleveragents/tool/builtins/file_tools.py. Look for an Epic covering the Actors & Skills workstream or the Tool/Builtin implementation track.


Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

⚠️ **Orphan Issue — Manual Linking Required** This issue was created by an automated agent and does not yet have a parent Epic linked. Per CONTRIBUTING.md, orphan issues are not permitted. A human reviewer must: 1. Identify the appropriate parent Epic for the `local/file-ops` skill / builtin file tools work 2. Create the dependency link so that **this issue (#4038) blocks the parent Epic** (child blocks parent direction) The relevant area is the `local/file-ops` skill and `src/cleveragents/tool/builtins/file_tools.py`. Look for an Epic covering the Actors & Skills workstream or the Tool/Builtin implementation track. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
HAL9000 added this to the v3.5.0 milestone 2026-04-09 03:11:47 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#4038
No description provided.