agentleFS
DATA-AI-XYZDATA-AI-XYZ/Tandem/skills/mode/SKILL.md

mode

Skill0 starsChanged 6 months agoMITView on GitHub

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 conversation Mode is active.

11 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use setup.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • VercelSkill

    setup

    Set up Vercel CLI and project configuration. Use when the user says "set up Vercel", "configure Vercel", "link to Vercel", or "vercel init".

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 4 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When a JOINED chat's active mode disagrees with the request:

    line 44
  2. Distinctive:

    In dual: no nudge — both allowed.

    line 51
  3. Distinctive:

    In neutral: no enforcement; proceed. If a *sustained* run of one phase begins, you MAY offer once: "Want to set Plan mode for this?" — …

    line 52
  4. Distinctive:

    Free (un-joined) chat: no banner, no nudge.

    line 53

“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

ModeMeaningOut-of-mode requests
planPlanning phase. Founder/PM/QA-planning work.Dev requests → nudge
devBuilding phase. Dev/QA-execution work.Plan requests → nudge
dualBoth allowed (planning in one chat, building in another).No nudge
neutralNo 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 / session context as <session_id> in every command below.

Setting the mode

Triggered by /mode <plan|dev|dual|neutral> or natural language ("go to plan mode"):

node _00-Project-Management/93-Scripts/mode.js set <mode> --by user --session <session_id> [--context "<short label>"]

Setting from a chat also joins that chat. Confirm the change in one line and state what it now enforces.

The nudge (soft — never a hard block)

When a JOINED chat's active mode disagrees with the request:

  • In plan, asked for Dev work:

    ⚠️ We're in Plan mode — that's Dev work. (a) switch to Dev, (b) go Dual so planning here + dev elsewhere both run, or (c) do it as a one-off without changing the mode?

    On (c), do the single task; leave the flag on plan (no silent drift).

  • In dev, asked for Plan work: mirror image.
  • In dual: no nudge — both allowed.
  • In neutral: no enforcement; proceed. If a sustained run of one phase begins, you MAY offer once: "Want to set Plan mode for this?" — offer, never force.
  • Free (un-joined) chat: no banner, no nudge.

Auto-reset to Neutral (driven by the close skills)

You do not flip to Neutral spontaneously. It happens via:

  • close-out-story — only when the closed story was the last open story in the phase.
  • close-phase — always (also how Dual exits).

Each auto-reset is announced; it is written with --by auto-neutral.

When in doubt

Bring it to the user. Never invent a fifth mode. Never hand-edit .tandem-mode.json.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.