diff --git a/prompts/tools-file.md b/prompts/tools-file.md index c41955b..5b57e6e 100644 --- a/prompts/tools-file.md +++ b/prompts/tools-file.md @@ -25,6 +25,7 @@ execute_code: steps=[{tool: "file_grep", args: ["func.*Handler", "src/"]}] **Constraints**: - Never read the full contents of session files (`$OLLIE/s/*/chat`, `$OLLIE/s/*/log`). The conversation history is already in your context window; use `memory_recall` for facts that predate the current session. Grepping these files for a specific term is fine. +- Never read individual tool scripts to understand their behavior. To discover or verify tool capabilities, read `$OLLIE/t/idx`. - `file_write` and `file_edit` require a prior `file_read` in the same session. `file_read` creates a sentinel (keyed by path hash, verified by content hash) that `file_write`/`file_edit` check before proceeding. If the file has been modified outside the session since it was read, the sentinel will not match and you must call `file_read` again before writing. - Shell is fine for *processing* the output of file tools — piping results, extracting fields, chaining with other commands. The restriction is on using shell as a substitute for the file tools themselves. - Always use absolute paths. diff --git a/tools/task_add b/tools/task_add index ded6e5a..2bc852d 100755 --- a/tools/task_add +++ b/tools/task_add @@ -13,7 +13,7 @@ current="$(cat "$plan" 2>/dev/null)" { [ -n "$current" ] && printf '%s\n' "$current" for task in "$@"; do - printf '- [ ] %s\n' "$task" + printf -- '- [ ] %s\n' "$task" done } > "$plan"