← ClaudeAtlas

modelisted

Set and enforce the project's global conversation Mode (Plan · Dev · Dual · Neutral) — the persistent "moat" that frames every joined chat. Use when the user says "go to plan/dev/dual mode", "set the mode", "isolate this chat", "rejoin global mode", when a request is out-of-mode, or when uncertain which phase the project is in.
DATA-AI-XYZ/Tandem · ★ 0 · AI & Automation · score 70
Install: claude install-skill DATA-AI-XYZ/Tandem
# Tandem conversation Mode — "the moat" A single project-global Mode frames every **joined** chat so suggestions stay in-phase. State lives in `.tandem-mode.json` at the repo root (git-ignored). Read/write it ONLY through `_00-Project-Management/93-Scripts/mode.js` (CLI or import) — never hand-edit the JSON. ## The four modes | Mode | Meaning | Out-of-mode requests | |---|---|---| | **plan** | Planning phase. Founder/PM/QA-planning work. | Dev requests → nudge | | **dev** | Building phase. Dev/QA-execution work. | Plan requests → nudge | | **dual** | Both allowed (planning in one chat, building in another). | No nudge | | **neutral** | No active frame (default/resting). | No enforcement | ## What is Plan vs Dev (anchored to lifecycle skills, not keyword-guessing) - **Plan:** draft-okrs, draft-prd, draft-epic, split-into-features, split-into-stories, refine-backlog, execution-strategist; *planning* a testplan. - **Dev:** execute-batch, execute-story, run-testplan, close-out-story; *running* a testplan. ## Joining (opt-in) and isolation - A chat is **free** (no mode, no nudges) until it **joins**. Joining happens when `session-start` runs, or when the mode is set from within the chat. - The `UserPromptSubmit` hook injects a `Tandem mode: …` banner each message for joined chats; a free chat gets nothing. - **"isolate this chat"** → free it again: `node _00-Project-Management/93-Scripts/mode.js leave --session <session_id>`. > Use the session ID from the hook payload / se