AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Mm Bridge

skill-mworldorg-markdown-memory-mm-bridge · by mworldorg

Compose a ready-to-copy prompt for the user's OTHER Claude Code instance (running in PowerShell). Use when the user asks to "напиши промпт для powershell", "сгенерируй задание для другого клода", "переброс задачи в основной клод", "/mm-bridge", or any request to hand off work to the PowerShell instance. Auto-reads passport.md of the target project to inject stack/conventions/constraints. Supports…

No reviews yet
0 installs
34 views
0.0% view→install

Install

$ agentstack add skill-mworldorg-markdown-memory-mm-bridge

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-mworldorg-markdown-memory-mm-bridge)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Mm Bridge? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

mm-bridge — Prompt Composer for PowerShell Claude Code

Я работаю в app/web инстансе Claude Code или в claude.ai. У пользователя есть другой Claude Code в PowerShell — там идёт реальная работа. Этот skill пишет файл-мост в Obsidian. Пользователь копипастит из файла в PowerShell-сессию.

PowerShell-инстанс не видел этот разговор. Каждый промпт — самодостаточен.

Конфиг

Загрузи mm-config.json по алгоритму из /docs/CONFIG-LOADING.md (env MM_REPO_ROOT → resolve junction → fallback). Поддержка mm-config.local.json overlay обязательна.

Понадобятся ключи:

  • paths.obsidian_bridge — куда писать next-prompt.md
  • paths.obsidian_bridge_archive — куда переносить старые промпты
  • default_languageru по умолчанию

Процесс

Шаг 1. Собери контекст задачи

Из текущего разговора пойми:

  • Что сделать? — действие в одном предложении
  • В каком проекте? — абсолютный путь
  • Какой результат? — definition of done

Шаг 2. Авто-подгрузка паспорта проекта

Если ты знаешь целевой путь проекта — попробуй прочитать /passport.md. Из него возьми:

  • project (имя)
  • Стек (секция 2): язык, фреймворк, главные зависимости
  • Конвенции (секция 7)
  • Секция 8 «Контекст для промптов» — критично, перенеси в промпт целиком
  • Точки входа (секция 4)
  • Команды (секция 5)

Если паспорта нет — попроси пользователя дать минимальный контекст (одно сообщение, не больше 3 вопросов):

  1. Целевая папка (абсолютный путь)?
  2. Какие файлы должен прочитать другой Клод первыми?
  3. Что считаем готовым?

Если пользователь говорит «ты решай» / «default» — выбираешь сам, отмечаешь в промпте ``.

Шаг 2.5. Выбери prompt framework

Шаблоны лежат в /templates/prompt-frameworks.md. Доступны: none | CRISPE | XML | PERSONA | HYPOTHESIS.

Если юзер передал --framework — используй его. Точка.

Иначе auto-detect — применяй эвристики из /templates/prompt-frameworks.md (раздел «Auto-detect»). Этот документ — единственный source-of-truth для эвристик; не дублируй здесь.

Если эвристика не уверена — спроси одной строкой: Framework: XML / CRISPE / none? (дефолт XML).

Запомни выбранный framework — он нужен для шага 4 (формирование промпта) и для frontmatter (framework: ).

Если выбран framework ≠ none — прочти соответствующий блок из /templates/prompt-frameworks.md и используй как шаблон обёртки.

Шаг 3. Архивируй прошлый промпт

Перед перезаписью /next-prompt.md:

  • Если файл существует — прочитай frontmatter (created, slug).
  • Скопируй (Read + Write) в /-.md на основе frontmatter.
  • Только после успешной записи в архив — перезапиши next-prompt.md.
  • Если slug отсутствует — выведи из первого # Заголовка.

Шаг 3.9. Scrub секретов перед записью и отдачей (hard-stop, строже handoff)

> Вывод этого скилла пользователь руками вставляет в claude.ai (внешний сервис) — это самая «утечкоёмкая» точка mm. Промпт собирается из паспорта + контекста чата, куда мог просочиться токен. Поэтому политика строже, чем у mm-handoff.

Переиспользуй единый механизм — паттерны бери из канона /config/secret-patterns.json (политику mm-bridge и пояснение см. в /docs/SECRET-PATTERNS.md, строка mm-bridge в «Политики применения»), не дублируй их здесь. Прогони весь собранный текст промпта (frontmatter + тело) через паттерны. TG-summary (Шаг 4.5) выводится из уже очищенного промпта → наследует маски, отдельно сканировать не нужно:

  1. Маскируй И Класс A, И Класс B — типизированными плейсхолдерами с сохранением контекста (в отличие от handoff/save, здесь Класс B тоже маскируется, не warn-only).
  2. Если найдено что-либо (A или B) — жёсткий стоп. НЕ записывай next-prompt.md, НЕ показывай вывод, НЕ отправляй TG. Выведи список находок (тип + место + первые 12 символов) и спроси одной строкой: 🛑 Найдено N потенциальных секретов, замаскировано. Отдать промпт с масками? (y / отмена).
  3. Отдавай (Шаги 4–5) только после явного y — и только уже замаскированный текст. На «отмена» — ничего не пиши, скажи где посмотреть/почистить источник.
  4. Если находок ноль — продолжай молча (Шаг 4), без лишнего шума.

Шаг 4. Запиши новый промпт

Файл: /next-prompt.md. Формат:

---
created: 
project: 
project_path: 
task_type: feature | bugfix | refactor | setup | research | other
slug: 
source: mm-bridge
passport_used: 
framework: 
---

# Задача

# Контекст

**Стек проекта** (из passport.md):  ·  ·  · 

# Файлы для чтения сначала

- `` — 
- `` — 

# Что нужно сделать

1. 
2. 
3. 

# Ограничения

- 
- 

# Done when

- [ ] 
- [ ] 
- [ ] 

# Полезные команды

```bash
# Из секции 5 паспорта или из контекста

После выполнения

Когда закончишь — выполни /mm-save-session чтобы залогировать сессию в Obsidian.


### Шаг 4.5. Опциональный Telegram push (если --tg)

Активируется при:
- Юзер передал флаг `--tg` ИЛИ
- В `mm-config.local.json` поле `tg_bridge.enabled = true` И юзер не передал `--no-tg`.

Что делать:
1. Прочитай `tg_bridge.bot_username` из конфига. Если пусто — пропусти этот шаг с warn.
2. Проверь что бот установлен: `/external/claude-code-telegram/.env` существует.
3. **Не пытайся напрямую обращаться к Telegram API** — у нас нет токена в этом контексте. Вместо этого:
   - Сгенерируй короткое **TG-friendly** сообщение: компактный prompt-summary (1 экран в Telegram) + ссылка на цель проекта + reminder про работу через бота.
   - Покажи юзеру **ready-to-paste** для отправки боту:
     ```
     📲 Для Telegram-бота (отправь  такое сообщение):

     /cd 
     
     ```
4. Если флаг `--tg` И бот **не установлен** (нет `external/claude-code-telegram/.env`):
   - Скажи: `TG bridge не установлен. Запусти scripts/install-tg-bridge.ps1 или см. docs/TG-BRIDGE.md`
   - НЕ создавай файл вообще, верни ошибку — юзер явно просил TG.

### Шаг 5. Подтверди пользователю

Одной строкой (не блоком):

Готово: C:\Users\louise\Documents\Obsidian Vault\Claude\Bridge\next-prompt.md (framework: , passport: , архив: , tg: ). Скопируй и вставь в PowerShell.


Если был TG push — после этой строки добавь готовое сообщение для бота отдельным блоком.

## Стиль промпта

- **Русский по умолчанию** (`default_language` из конфига).
- **Императив**: «Создай», «Обнови», «Проверь» — не «Можно ли...».
- **Абсолютные пути Windows** (`C:\...`).
- **Никаких отсылок** к «нашему разговору», «как мы обсуждали», «we».
- **Конкретное Done when** — проверяемое («бот стартует без ошибок», «тест X проходит»), а не размытое («работает хорошо»).
- **1 страница max**. Если задача больше — раздели на несколько мостов или предложи `/gsd-plan-phase` (если в проекте есть GSD).
- **Ссылки на конвенции проекта** — если есть `CLAUDE.md` или `passport.md` в проекте, упомяни: «Перед началом прочитай passport.md и секцию 8 — там жёсткие ограничения».

## Когда не писать мост, а возразить

- **Расплывчато** («сделай мне бота»): задай 1-2 уточняющих вопроса.
- **Многодневный скоуп**: предложи `/gsd-plan-phase` или разбить на серию мостов.
- **Тривиально** (1 строка): просто скажи что вставить, без файла-моста.
- **В паспорте секция 8 пустая**: предупреди — `Секция 8 паспорта пустая. Промпт без жёстких ограничений → риск что Клод сделает не так. Заполнить сначала?`

## Edge cases

- **Несколько проектов в задаче**: только один `project_path` в frontmatter (главный). Остальные упоминай в «Контексте».
- **Bridge-папки нет**: создай (Obsidian не падает на отсутствующих папках).
- **Архив-папки нет**: создай.
- **Текущий промпт пустой/повреждённый**: пропусти архивацию, перезапиши.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [mworldorg](https://github.com/mworldorg)
- **Source:** [mworldorg/markdown-memory](https://github.com/mworldorg/markdown-memory)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.