meta(tasks): update [setup-interns-clone-fallback] in claude-skills
This commit is contained in:
@@ -677,7 +677,23 @@ NB: эта таска сама уйдёт в следующий cleanup batch (2
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [setup-interns-clone-fallback] — Bug в `setup-interns`: когда source `~/projects/.common/lib/interns-mcp/` отсутствует, скил НЕ клонирует из gitea, а предлагает «initialize from scratch» (создать stub-сервер). Stub-сервер не связан с production-репой → разрыв со всем флотом, агент путает пользователя ложным выбором.
|
||||
## ⚪ [setup-interns-clone-fallback] — Bug в `setup-interns`: когда `~/projects/.common/lib/interns-mcp/` отсутствует, скил НЕ ensure-ит `.common`-репу из gitea, а предлагает «initialize from scratch» (создать stub-сервер). Stub-сервер не связан с production-кодом → разрыв со всем флотом.
|
||||
|
||||
Воспроизведено 2026-05-07 на свежей Windows-машине (`D:\projects\stostayer.new`): юзер сказал «настрой interns» → агент: «`.common/lib/interns-mcp/` not found, хочешь инициализировать?». Правильный ответ — ensure `.common` репа клонирована/свежая, **не initialize**.
|
||||
|
||||
**Architecture clarification:** `interns-mcp` — это поддиректория `.common/lib/interns-mcp/` внутри **одной общей репы `common`** (Gitea: `OpeItcLoc03/common`). Не отдельная репа. Все MCP-серверы (`projects-meta-mcp`, `interns-mcp`, и будущие) живут субдиректориями в `.common/lib/`. Это decision из таски `[migrate-to-common-lib]` (закрыта, line 127-134 в `projects-meta-mcp/.tasks/STATUS.md`).
|
||||
|
||||
Pattern для починки в `setup-interns/SKILL.md`:
|
||||
- Phase 1 (source detection): если `~/projects/.common/lib/interns-mcp/` отсутствует, проверить существование `~/projects/.common/` как git-репы.
|
||||
- Если `.common/` есть как git-репа, но `lib/interns-mcp/` отсутствует — `git pull --ff-only` в `.common` (стылый клон, нужны свежие subdirs).
|
||||
- Если `.common/` отсутствует целиком — `git clone {gitea}/common.git ~/projects/.common/` (с extraheader-auth pattern для PAT-fallback).
|
||||
- После ensure source — продолжить нормальный flow (pip install -e + secrets + register).
|
||||
|
||||
Аналогичный fix потенциально нужен и в `setup-projects-meta` — оно (вроде) уже умеет клонировать, но мог быть тот же gap. Стоит проверить параллельно. (Раньше предполагалось, что setup-projects-meta это покрывает — нужно подтвердить чтением SKILL.md.)
|
||||
|
||||
**Связь с `[setup-interns-fix-paths]` (⚪ ready, line 81):** там фикс cwd-relative → absolute paths. Этот фикс делать после или вместе.
|
||||
|
||||
**Bonus discovery:** `.factory/factory.yaml` lines 41-46 объявляет `interns-mcp` как **отдельный component с url `{git_host}/{git_org}/interns-mcp`** — это **тоже неверно** (репа interns-mcp на gitea не существует, только subdir в `.common`). Стоит завести отдельную fix-таску в `.factory` (не в этой репе) на корректную манифест-схему — либо source как path внутри другой репы, либо component definition пересмотреть.
|
||||
|
||||
Воспроизведено 2026-05-07 на свежей Windows-машине (`D:\projects\stostayer.new`): юзер сказал «настрой interns» → агент: «`.common/lib/interns-mcp/` not found in `D:\projects\stostayer.new`. Хочешь, чтоб я инициализировал?». Правильный ответ — clone из gitea, не initialize.
|
||||
|
||||
@@ -687,7 +703,7 @@ Pattern для починки уже отработан в `setup-projects-meta`
|
||||
|
||||
**Status:** ready
|
||||
**Where I stopped:** Created 2026-05-07 после incident на stostayer.new. Setup-projects-meta уже имеет clone-fallback (отрабатывал на field-test 2026-05-06 на новом ноуте), setup-interns эту feature не получил при первой реализации (`0eb7dd1 feat(interns-skills-mvp): ship setup-interns + using-interns v0.1.0`).
|
||||
**Next action:** 1) Сделать вместе с `[setup-interns-fix-paths]` (path-fix предшествует или идёт parallel). 2) В `skills/setup-interns/SKILL.md` найти Phase 1 (source detection / bailout). 3) Заменить bailout на clone-fallback по образцу `setup-projects-meta` (тот же SKILL.md, та же фаза — git clone target + verify pyproject.toml). 4) Auth-fallback: если git clone провалился (нет PAT) — печатать инструкцию по gitea-PAT (settings/applications, scopes read:repository) и pause, как в `.factory/bootstrap.ps1` lines 132-141. 5) Verify после clone: `pyproject.toml` существует в target. 6) Bump version: текущий 0.2.0 → 0.3.0 (MINOR — новая capability). 7) Build + install: `pwsh ./scripts/build.ps1 setup-interns ; pwsh ./scripts/install.ps1 setup-interns`. 8) Smoke-test: удалить `.common/lib/interns-mcp/` локально → `настрой interns` → должно clone + install + register без ручного вмешательства. 9) `tasks_close`. **NB:** одной из шагов смежно может быть закрытие `[setup-interns-fix-paths]` если path-фикс делается в том же коммите.
|
||||
**Next action:** 1) Делать вместе с `[setup-interns-fix-paths]` (path-fix предшествует или идёт parallel). 2) В `skills/setup-interns/SKILL.md` найти Phase 1 (source detection / bailout). 3) Заменить bailout на ensure-`.common`-pattern: проверить `~/projects/.common/`, если git-репа есть — `git pull --ff-only`, если нет — `git clone {gitea}/common.git ~/projects/.common/`. 4) Auth-fallback: при clone провале — print инструкцию по gitea-PAT (как в `.factory/bootstrap.ps1` lines 132-141). 5) Verify после clone/pull: `~/projects/.common/lib/interns-mcp/pyproject.toml` существует. 6) Bump version: 0.2.0 → 0.3.0 (MINOR — новая capability). 7) Build + install: `pwsh ./scripts/build.ps1 setup-interns ; pwsh ./scripts/install.ps1 setup-interns`. 8) Smoke-test: удалить `.common/` локально → `настрой interns` → должно clone .common + install + register. 9) **Параллельно:** прочитать `setup-projects-meta/SKILL.md` Phase 1, проверить идентичный pattern (clone-`.common`-when-absent), если разрыв — починить вместе. 10) `tasks_close`. **NB:** одной операцией смежно может быть закрытие `[setup-interns-fix-paths]`.
|
||||
**Branch:** n/a
|
||||
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: meeting-room / 2026-05-07T09:57:32.065Z -->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user