feat(config,compose): prompt tags in config, voice granule folder, runner config dir and .claude.json in entrypoint

This commit is contained in:
hh
2026-08-28 02:10:17 +02:00
parent f2dc07a5fd
commit 5fe6f23015
3 changed files with 35 additions and 12 deletions
+30 -9
View File
@@ -22,22 +22,43 @@ PROMPTS = BEAVER / "промпты"
GRANULES = PROMPTS / "гранулы"
SKILLS = BEAVER / "скиллы"
VOICE = GRANULES / "голос.md"
PROFILE = PROMPTS / "профиль.md"
CORRECTIONS = PROMPTS / "поправки.md"
VAULT_MAP = GRANULES / "карта-vault.md"
# Гранулы - чистый markdown; xml-теги, в которые они заворачиваются,
# живут здесь. Голос - папка, файл на тег, в этом порядке.
VOICE = tuple(
(tag, GRANULES / "голос" / f"{tag}.md")
for tag in (
"role",
"philosophy",
"user_profile",
"operating_modes",
"how_you_operate",
"interaction_guidelines",
)
)
PROFILE = ("profile", PROMPTS / "профиль.md")
CORRECTIONS = ("corrections", PROMPTS / "поправки.md")
VAULT_MAP = ("vault_map", GRANULES / "карта-vault.md")
def environment(kind: str) -> tuple[str, Path]:
return ("environment", GRANULES / "окружения" / f"{kind}.md")
def overlay(tag: str, name: str) -> tuple[str, Path]:
return (tag, GRANULES / f"{name}.md")
# §4.2: сборки промптов. Окружение kind'а - константная гранула, экземплярное
# (файл, топик) едет первым сообщением. Диспетчер/дистиллятор/триаж - M1b+.
DEEP_PROMPT = (
VOICE,
*VOICE,
PROFILE,
CORRECTIONS,
VAULT_MAP,
GRANULES / "окружения" / "глубокий.md",
GRANULES / "глубокий.md",
environment("глубокий"),
overlay("deep", "глубокий"),
)
QUICK_PROMPT = (VOICE, PROFILE, GRANULES / "быстрый.md")
QUICK_PROMPT = assemble((*VOICE, PROFILE, overlay("quick", "быстрый")))
# §4.3: наборы скиллов = папки = плагины. Глубокие грузят общие + vault.
DEEP_SKILLS = (SKILLS / "общие", SKILLS / "vault")
@@ -139,7 +160,7 @@ def raycast(name: str, model: str, reasoning_effort: str | None = None) -> Rayca
return RaycastAgent(
name=name,
model=model,
system_prompt=assemble(QUICK_PROMPT),
system_prompt=QUICK_PROMPT,
reasoning_effort=reasoning_effort,
available_native_tools=(RemoteTool.WEB_SEARCH, RemoteTool.READ_PAGE),
user_preferences=UserPrefsRu,