diff --git a/packages/app/tests/docker-git/entrypoint-auth.test.ts b/packages/app/tests/docker-git/entrypoint-auth.test.ts index 9fe1a572..3b3d5222 100644 --- a/packages/app/tests/docker-git/entrypoint-auth.test.ts +++ b/packages/app/tests/docker-git/entrypoint-auth.test.ts @@ -71,6 +71,12 @@ describe("renderEntrypoint auth bridge", () => { expect(entrypoint).toContain("CLAUDE_GLOBAL_PROMPT_FILE=\"/home/dev/.claude/CLAUDE.md\"") expect(entrypoint).toContain("CLAUDE_AUTO_SYSTEM_PROMPT=\"${CLAUDE_AUTO_SYSTEM_PROMPT:-1}\"") expect(entrypoint).toContain("docker-git-managed:claude-md") + expect(entrypoint).toContain( + "SUBAGENTS_LINE=\"Для решения задач обязательно используй subagents. Сам агент обязан выполнять финальную проверку, интеграцию и валидацию результата перед ответом пользователю.\"" + ) + expect(entrypoint.split("Для решения задач обязательно используй subagents.").length - 1).toBeGreaterThanOrEqual( + 2 + ) expect(entrypoint).toContain("token=\"${GITHUB_TOKEN:-}\"") expect(entrypoint).toContain("token=\"${GH_TOKEN:-}\"") expect(entrypoint).toContain(String.raw`printf "%s\n" "password=$token"`) diff --git a/packages/lib/src/core/templates-entrypoint/claude-extra-config.ts b/packages/lib/src/core/templates-entrypoint/claude-extra-config.ts index 8215eb4c..27d50fab 100644 --- a/packages/lib/src/core/templates-entrypoint/claude-extra-config.ts +++ b/packages/lib/src/core/templates-entrypoint/claude-extra-config.ts @@ -52,6 +52,7 @@ if [[ "$CLAUDE_AUTO_SYSTEM_PROMPT" == "1" ]]; then $CLAUDE_WORKSPACE_CONTEXT Фокус задачи: работай только в workspace, который запрашивает пользователь. Текущий workspace: __TARGET_DIR__ Доступ к интернету: есть. Если чего-то не знаешь — ищи в интернете или по кодовой базе. +Для решения задач обязательно используй subagents. Сам агент обязан выполнять финальную проверку, интеграцию и валидацию результата перед ответом пользователю. Если ты видишь файлы AGENTS.md или CLAUDE.md внутри проекта, ты обязан их читать и соблюдать инструкции. EOF diff --git a/packages/lib/src/core/templates-entrypoint/codex.ts b/packages/lib/src/core/templates-entrypoint/codex.ts index 93c1eb44..1a6950c5 100644 --- a/packages/lib/src/core/templates-entrypoint/codex.ts +++ b/packages/lib/src/core/templates-entrypoint/codex.ts @@ -216,6 +216,7 @@ WORKSPACES_LINE="Доступные workspace пути: __TARGET_DIR__" WORKSPACE_INFO_LINE="Контекст workspace: repository" FOCUS_LINE="Фокус задачи: работай только в workspace, который запрашивает пользователь. Текущий workspace: __TARGET_DIR__" INTERNET_LINE="Доступ к интернету: есть. Если чего-то не знаешь — ищи в интернете или по кодовой базе." +SUBAGENTS_LINE="Для решения задач обязательно используй subagents. Сам агент обязан выполнять финальную проверку, интеграцию и валидацию результата перед ответом пользователю." if [[ "$REPO_REF" == issue-* ]]; then ISSUE_ID="$(printf "%s" "$REPO_REF" | sed -E 's#^issue-##')" ISSUE_URL="" @@ -247,9 +248,9 @@ elif [[ "$REPO_REF" == refs/pull/*/head ]]; then WORKSPACE_INFO_LINE="Контекст workspace: pull request ($REPO_REF)" fi fi +MANAGED_START="" +MANAGED_END="" if [[ ! -f "$AGENTS_PATH" ]]; then - MANAGED_START="" - MANAGED_END="" MANAGED_BLOCK="$(cat < "$TMP_AGENTS_PATH" if [[ -s "$TMP_AGENTS_PATH" ]]; then printf "\n" >> "$TMP_AGENTS_PATH" @@ -314,7 +316,7 @@ if [[ -f "$LEGACY_AGENTS_PATH" && -f "$AGENTS_PATH" ]]; then fi` export const renderEntrypointAgentsNotice = (config: TemplateConfig): string => - entrypointAgentsNoticeTemplate - .replaceAll("__CODEX_HOME__", config.codexHome) - .replaceAll("__SSH_USER__", config.sshUser) - .replaceAll("__TARGET_DIR__", config.targetDir) + entrypointAgentsNoticeTemplate.replaceAll("__CODEX_HOME__", config.codexHome).replaceAll( + "__SSH_USER__", + config.sshUser + ).replaceAll("__TARGET_DIR__", config.targetDir)