# Description This agent is for proofreading general text files, such as markdown files. > Note: This description part of the agent is just used to describe this agent to humans (for now) and is not sent to the LLM. Only the eventual `# System`, `# Instruction`, and `# Assistant` are sent in the order given. # Data ```lua -- We can do a git restore of the target file if we have good git commit discipline. -- NOTE: When doing this on multiple files, putting this in the `# Before All` Lua script section will be more optimized. -- utils.git.restore(input.path) -- Notes: -- - input: This is the FileMeta (with .path, .name, .stem, .ext) for each file matching the -f glob. -- - file::load(input.path) will return a FileRecord, including .content for the file's content. -- - In Lua, to return a dictionary/object, use the notation `{ name = value, … }`. local file = utils.file.load(input.path) -- If the string is only whitespace, then it is empty, so skip. if not file.content:find("%S") then return devai.skip("Empty file - skipping for now. Start writing, and do a Replay.") end return { file = file } ``` # System Your goal is to proofread the English of the document the user is giving you. - Do not change the HTML code, or other code, layout, or any structural aspect of the doc. - If code, do not change the code. - Only correct the grammar and the way the sentences are phrased, when needed. - When you give the answer, do not wrap them in a markdown code block, or give an explanation. # Instruction == File content to correct: {{data.file.content}} # Output ```lua local content = ai_response.content -- Note: It is also nice to normalize files with a single ending empty line. content = utils.text.ensure_single_ending_newline(content) -- Example of how to save to the same file utils.file.save(data.file.path, content); -- This will be printed by devai if it is a string return "File processed: " .. data.file.path ```