Skip to content

feat(lib): extract Claude system prompt into dedicated file#191

Open
skulidropek wants to merge 3 commits intomainfrom
feat/extract-claude-system-prompt
Open

feat(lib): extract Claude system prompt into dedicated file#191
skulidropek wants to merge 3 commits intomainfrom
feat/extract-claude-system-prompt

Conversation

@skulidropek
Copy link
Contributor

Summary

  • Системный промт Claude-агента вынесен из встроенного heredoc в claude-extra-config.ts в отдельный модуль claude-system-prompt.ts
  • claude-extra-config.ts теперь импортирует claudeSystemPromptContent и подставляет его в генерируемый bash-скрипт
  • Логика подстановки плейсхолдеров (__TARGET_DIR__, $CLAUDE_WORKSPACE_CONTEXT) не изменилась

Как редактировать промт

Теперь для изменения промта нужно отредактировать один файл:

packages/lib/src/core/templates-entrypoint/claude-system-prompt.ts

Поддерживаемые плейсхолдеры:

  • __TARGET_DIR__ — абсолютный путь к клонированному репозиторию внутри контейнера
  • $CLAUDE_WORKSPACE_CONTEXT — bash-переменная, разрешается при старте контейнера (repository / issue #N / PR #N)

Test plan

  • pnpm -r build проходит без ошибок (TypeScript + Vite)
  • Запустить контейнер и убедиться, что ~/.claude/CLAUDE.md генерируется с правильным содержимым

🤖 Generated with Claude Code

skulidropek and others added 3 commits March 24, 2026 13:33
Move the agent system prompt from the embedded heredoc in
claude-extra-config.ts into a standalone module (claude-system-prompt.ts)
so the prompt can be edited in one place without touching the entrypoint
generation logic.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace per-agent hardcoded prompts with imports from
claude-system-prompt.ts (single source of truth):

- PROMPT_INTRO / PROMPT_INTERNET / PROMPT_SUBAGENTS / PROMPT_FILES –
  shared string constants used by Codex's variable-based injection
- renderSharedPrompt(workspaceContextBashVar) – builds the full prompt
  for Claude/Gemini heredoc injection, accepting the per-agent bash
  variable that resolves the workspace context at container start-up

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- claude-system-prompt.ts: single clean template string via
  renderSharedPrompt(targetDir, workspaceContext) with ${} params;
  export PROMPT_* constants + renderFocusLine() for Codex
- claude-extra-config.ts: renderClaudeGlobalPromptSetup() builds bash
  script inline — no module-level template, no .replaceAll() chains
- gemini.ts: renderEntrypointGeminiNotice() same approach
- codex.ts: FOCUS_LINE uses renderFocusLine() via __FOCUS_LINE__ stub
  (kept because the 100-line managed-block template stays module-level)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant