52 lines
2.8 KiB
XML
52 lines
2.8 KiB
XML
<!-- tasks/20250813_093000_clarify_logging_spec.xml -->
|
||
<TASK status="pending">
|
||
<WORK_ORDER id="task-20250813093000-002-spec-update">
|
||
<ACTION>MODIFY_SPECIFICATION</ACTION>
|
||
|
||
<TARGET_FILE>PROJECT_SPECIFICATION.xml</TARGET_FILE>
|
||
|
||
<GOAL>
|
||
Уточнить техническое решение по логированию (id="tech_logging"), добавив конкретный пример использования Timber.
|
||
Это устранит неоднозначность и предотвратит генерацию некорректного кода для логирования в будущем, предоставив ясный и копируемый образец.
|
||
</GOAL>
|
||
|
||
<CONTEXT_FILES>
|
||
<FILE>PROJECT_SPECIFICATION.xml</FILE>
|
||
</CONTEXT_FILES>
|
||
|
||
<PAYLOAD mode="APPEND_CHILD" target_node_xpath="//TECHNICAL_DECISIONS/DECISION[@id='tech_logging']">
|
||
<![CDATA[
|
||
<EXAMPLE lang="kotlin">
|
||
<summary>Пример корректного использования Timber</summary>
|
||
<code>
|
||
<![CDATA[
|
||
// Правильно: Прямой вызов статических методов Timber.
|
||
// Для информационных сообщений (INFO):
|
||
Timber.i("User logged in successfully. UserId: %s", userId)
|
||
|
||
// Для отладочных сообщений (DEBUG):
|
||
Timber.d("Starting network request to /items")
|
||
|
||
// Для ошибок (ERROR):
|
||
try {
|
||
// какая-то операция, которая может провалиться
|
||
} catch (e: Exception) {
|
||
Timber.e(e, "Failed to fetch user profile.")
|
||
}
|
||
|
||
// НЕПРАВИЛЬНО: Попытка создать экземпляр логгера.
|
||
// val logger = Timber.tag("MyScreen") // Избегать этого!
|
||
// logger.info("Some message") // Этот метод не существует в API Timber.
|
||
]]>
|
||
</code>
|
||
</EXAMPLE>
|
||
]]>
|
||
</PAYLOAD>
|
||
|
||
<IMPLEMENTATION_HINTS>
|
||
<HINT>Агент должен найти узел `<DECISION id="tech_logging">` в файле `PROJECT_SPECIFICATION.xml` с помощью XPath `//TECHNICAL_DECISIONS/DECISION[@id='tech_logging']`.</HINT>
|
||
<HINT>Затем он должен добавить XML-блок из секции `<PAYLOAD>` в качестве нового дочернего элемента к найденному узлу `<DECISION>`.</HINT>
|
||
<HINT>Операция `APPEND_CHILD` означает, что содержимое PAYLOAD добавляется в конец списка дочерних элементов целевого узла.</HINT>
|
||
</IMPLEMENTATION_HINTS>
|
||
</WORK_ORDER>
|
||
</TASK> |