Skip to content

Commit 5940a62

Browse files
authored
Merge pull request #114 from ProverCoderAI/issue-108
feat(prompt): enforce subagents-first workflow in managed prompts
2 parents 0d8b091 + 8ca463f commit 5940a62

3 files changed

Lines changed: 17 additions & 8 deletions

File tree

packages/app/tests/docker-git/entrypoint-auth.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ describe("renderEntrypoint auth bridge", () => {
7171
expect(entrypoint).toContain("CLAUDE_GLOBAL_PROMPT_FILE=\"/home/dev/.claude/CLAUDE.md\"")
7272
expect(entrypoint).toContain("CLAUDE_AUTO_SYSTEM_PROMPT=\"${CLAUDE_AUTO_SYSTEM_PROMPT:-1}\"")
7373
expect(entrypoint).toContain("docker-git-managed:claude-md")
74+
expect(entrypoint).toContain(
75+
"SUBAGENTS_LINE=\"Для решения задач обязательно используй subagents. Сам агент обязан выполнять финальную проверку, интеграцию и валидацию результата перед ответом пользователю.\""
76+
)
77+
expect(entrypoint.split("Для решения задач обязательно используй subagents.").length - 1).toBeGreaterThanOrEqual(
78+
2
79+
)
7480
expect(entrypoint).toContain("token=\"${GITHUB_TOKEN:-}\"")
7581
expect(entrypoint).toContain("token=\"${GH_TOKEN:-}\"")
7682
expect(entrypoint).toContain(String.raw`printf "%s\n" "password=$token"`)

packages/lib/src/core/templates-entrypoint/claude-extra-config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ if [[ "$CLAUDE_AUTO_SYSTEM_PROMPT" == "1" ]]; then
5252
$CLAUDE_WORKSPACE_CONTEXT
5353
Фокус задачи: работай только в workspace, который запрашивает пользователь. Текущий workspace: __TARGET_DIR__
5454
Доступ к интернету: есть. Если чего-то не знаешь — ищи в интернете или по кодовой базе.
55+
Для решения задач обязательно используй subagents. Сам агент обязан выполнять финальную проверку, интеграцию и валидацию результата перед ответом пользователю.
5556
Если ты видишь файлы AGENTS.md или CLAUDE.md внутри проекта, ты обязан их читать и соблюдать инструкции.
5657
<!-- /docker-git-managed:claude-md -->
5758
EOF

packages/lib/src/core/templates-entrypoint/codex.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ WORKSPACES_LINE="Доступные workspace пути: __TARGET_DIR__"
216216
WORKSPACE_INFO_LINE="Контекст workspace: repository"
217217
FOCUS_LINE="Фокус задачи: работай только в workspace, который запрашивает пользователь. Текущий workspace: __TARGET_DIR__"
218218
INTERNET_LINE="Доступ к интернету: есть. Если чего-то не знаешь — ищи в интернете или по кодовой базе."
219+
SUBAGENTS_LINE="Для решения задач обязательно используй subagents. Сам агент обязан выполнять финальную проверку, интеграцию и валидацию результата перед ответом пользователю."
219220
if [[ "$REPO_REF" == issue-* ]]; then
220221
ISSUE_ID="$(printf "%s" "$REPO_REF" | sed -E 's#^issue-##')"
221222
ISSUE_URL=""
@@ -247,16 +248,17 @@ elif [[ "$REPO_REF" == refs/pull/*/head ]]; then
247248
WORKSPACE_INFO_LINE="Контекст workspace: pull request ($REPO_REF)"
248249
fi
249250
fi
251+
MANAGED_START="<!-- docker-git:managed:start -->"
252+
MANAGED_END="<!-- docker-git:managed:end -->"
250253
if [[ ! -f "$AGENTS_PATH" ]]; then
251-
MANAGED_START="<!-- docker-git:managed:start -->"
252-
MANAGED_END="<!-- docker-git:managed:end -->"
253254
MANAGED_BLOCK="$(cat <<EOF
254255
$MANAGED_START
255256
$PROJECT_LINE
256257
$WORKSPACES_LINE
257258
$WORKSPACE_INFO_LINE
258259
$FOCUS_LINE
259260
$INTERNET_LINE
261+
$SUBAGENTS_LINE
260262
$MANAGED_END
261263
EOF
262264
)"
@@ -268,15 +270,14 @@ EOF
268270
chown 1000:1000 "$AGENTS_PATH" || true
269271
fi
270272
if [[ -f "$AGENTS_PATH" ]]; then
271-
MANAGED_START="<!-- docker-git:managed:start -->"
272-
MANAGED_END="<!-- docker-git:managed:end -->"
273273
MANAGED_BLOCK="$(cat <<EOF
274274
$MANAGED_START
275275
$PROJECT_LINE
276276
$WORKSPACES_LINE
277277
$WORKSPACE_INFO_LINE
278278
$FOCUS_LINE
279279
$INTERNET_LINE
280+
$SUBAGENTS_LINE
280281
$MANAGED_END
281282
EOF
282283
)"
@@ -296,6 +297,7 @@ EOF
296297
-e '/^Фокус задачи:/d' \
297298
-e '/^Issue AGENTS.md:/d' \
298299
-e '/^Доступ к интернету:/d' \
300+
-e '/^Для решения задач обязательно используй subagents[.]/d' \
299301
"$AGENTS_PATH" > "$TMP_AGENTS_PATH"
300302
if [[ -s "$TMP_AGENTS_PATH" ]]; then
301303
printf "\n" >> "$TMP_AGENTS_PATH"
@@ -314,7 +316,7 @@ if [[ -f "$LEGACY_AGENTS_PATH" && -f "$AGENTS_PATH" ]]; then
314316
fi`
315317

316318
export const renderEntrypointAgentsNotice = (config: TemplateConfig): string =>
317-
entrypointAgentsNoticeTemplate
318-
.replaceAll("__CODEX_HOME__", config.codexHome)
319-
.replaceAll("__SSH_USER__", config.sshUser)
320-
.replaceAll("__TARGET_DIR__", config.targetDir)
319+
entrypointAgentsNoticeTemplate.replaceAll("__CODEX_HOME__", config.codexHome).replaceAll(
320+
"__SSH_USER__",
321+
config.sshUser
322+
).replaceAll("__TARGET_DIR__", config.targetDir)

0 commit comments

Comments
 (0)