Узнайте, куда отправляются
экспортированные заметки.

Используйте REA для проверки небольшого приложения, нажмите на кнопку "Экспорт заметок" и проверьте одну деталь самостоятельно.

Приведенный пример · Node.js и npm · Ваш кодирующий агент

1. Подключите своего агента к REA.

Используйте средство кодирования, такое как Claude Code, Codex или Cursor. Вам понадобятся Node.js и npm; в руководстве по установке перечислены поддерживаемые версии.

Ваш кодирующий агент

Установи REA и подключи его к этому ИИ-помощнику с помощью npx rea-agents@latest setup. Сначала покажи план изменений и дождись моего одобрения. Затем проверь установку.

Или запустите эту команду в своем терминале:

npx rea-agents@latest setup

Ознакомьтесь с планом, одобрите настройку, затем перезапустите свой агент. Вы уже подключены? Продолжение ниже.

2. Спросите, где записан CSV

Примером может служить приложение Electron, состоящее из шести файлов, с кнопкой экспорта заметок. Ваш агент может проверить его код, не устанавливая и не запуская Electron.

Ваш кодирующий агент

Загрузите https://reverseengineeranything.app/examples/notes-example.zipв новую папку с примерами и распакуйте ее. Используйте REA, чтобы узнать, что происходит, когда я нажимаю "Экспортировать заметки". Покажите, где notes.csvчто записано, какие поля оно содержит, а также соответствующие файлы и строки.

Ваш агент загружает файлы и передает распакованную папку REA для проверки.

Пример загрузки ZIP-файла

Если ваш агент не может загрузить файлы, распакуйте этот архив самостоятельно. Укажите путь к папке notes-example и задайте тот же вопрос об экспорте.

3. Следуйте ответу обратно к коду

Ищите краткое объяснение со ссылками на файлы и строки:

Кнопка отправляет сообщение notes:export. Основной процесс форматирует заметки как CSV и записывает notes.csv в папку загрузок пользователя. Это столбцы id и title.

От кнопки до устройства записи файлов

  1. Страница · renderer.js При экспорте заметок вызывается функция notes.exportCsv().
  2. Мост · preload.jsnotes:export в основной процесс отправляется именованное сообщение.
  3. Обработчик · main.jsWrite notes.csvВызывает средство форматирования в csv.js и записывает файл.
Статический анализ REA сопоставляет сообщение с его обработчиком. Адресат считывается из кода.
main.js · строки 8-12Исходный код
ipcMain.handle("notes:export", () => {
  const destination = path.join(app.getPath("downloads"), "notes.csv");
  writeFileSync(destination, toCsv(notes), "utf8");
  return destination;
});

Путь к файлу, средство форматирования и вызов записи находятся в этом обработчике вместе. Попросите вашего агента показать эти строки, если в его ответе они отсутствуют.

Посмотрите полную трассировку кода и записанный результат REA.

4. Проверьте прогноз

Столбцы CSV разделены запятой. Что происходит, когда заголовок заметки сам по себе содержит запятую или кавычки?

Ваш кодирующий агент

Спрогнозируйте CSV для заметки с идентификатором 1 и заголовком Hello, "REA". Затем запустите toCsvпрограмму форматирования примера сNode.js, чтобы проверить это. Покажите прогноз и фактический результат.

Ожидаемый результат форматирования
id,title
1,"Hello, ""REA"""

Заголовок остается в одном поле, заключенном в кавычки; каждая кавычка удваивается. При этом выполняется прямая проверка форматирования с помощью Node.js.

Проведите проверку самостоятельно

Откройте терминал в распакованной папке notes-example:

Node.js · CSV форматировщик
node <<'JS'
const { toCsv } = require('./csv.js');
process.stdout.write(toCsv([{ id: 1, title: 'Hello, "REA"' }]));
JS

Эта команда использует оболочку с поддержкой here-document, такую как Bash или Zsh. Ваш агент может запустить тот же JavaScript в оболочке вашей платформы.

5. Задайте еще один вопрос

Попробуйте продолжить тот же разговор:

Что произойдет, если файл не может быть записан? Вернитесь на страницу, указанную в сообщении об ошибке.

Или предоставьте своему агенту собственное приложение и спросите об одной кнопке, файле или поведении.

Топ