Skip to content

Add communication preferences section to base templates #467

@braboj

Description

@braboj

What

Add a Communication Preferences section to the base templates so downstream projects can adopt or override a single shared default for how the user wants the AI assistant to communicate during a session. Currently each downstream CLAUDE.md (e.g. imbra-spikes/CLAUDE.md) carries the rules privately — there is no upstream surface to point at.

The current local definitions (lifted verbatim from imbra-spikes/CLAUDE.md §6, in active use and validated):

## Communication preferences

- Concise, direct answers — no filler, no preamble
- "next" means move to the next item without asking for confirmation
- "stop" means stop working — does not mean save or commit automatically
- "yes" means proceed — do not summarise what you are about to do, just do it
- Always state your preferred option after presenting suggestions
- Ask before assuming scope on ambiguous instructions

Each rule has been earned through repeated session feedback:

Rule What it prevents
Concise, no preamble Wasted tokens restating the request before answering
"next" = no confirmation Stalls when the user is in flow mode
"stop" = stop only, do not save/commit Accidental commits when the user wants to pause
"yes" = proceed, no summary Replaying what you're about to do instead of doing it
State preferred option after suggestions Forcing the user to pick when the assistant has a view
Ask before assuming scope Silent scope creep on ambiguous requests

Where it goes

Suggested home: templates/base/workflow/communication.md — peer to scope.md, ai-workflow.md, issues.md, release.md. Workflow-level concern, not core (which is for code conventions) or language-specific.

Alternative: fold into the existing base/workflow/scope.md as a new section. The standalone-file route is preferred — communication preferences are reusable independent of scope guard, and downstream projects often want to opt in to one without the other.

Downstream projects then reference it the same way they already reference other base templates in their CLAUDE.md:

Key references:
- `docs/solid-ai-templates/base/workflow/communication.md` — communication preferences, shorthand verbs

Why

Three reasons:

  1. Single source of truth. Today these rules live in private downstream CLAUDE.md files. Any improvement to the wording or any new shorthand verb requires editing N project files. With an upstream template, downstream projects pull the convention by reference, override only where they need to, and benefit from upstream refinements automatically.

  2. Discoverability for new projects. A fresh project setting up CLAUDE.md from solid-ai-templates currently has nothing to start from for communication style. The user has to re-derive the same rules from the same session feedback. An upstream template gives them a working default on day one.

  3. Pattern with scope.md, git.md, quality.md, etc. These templates exist precisely because cross-project conventions deserve cross-project storage. Communication preferences fit the same shape: short, opinionated, reusable, override-friendly.

The local file imbra-spikes/CLAUDE.md §6 has been stable for months and the rules survive intact across multiple session styles — strong signal that they generalise.

Acceptance criteria

  • New file templates/base/workflow/communication.md containing at minimum the six current rules.
  • File follows the existing base/workflow/*.md shape (short, bulleted, no boilerplate).
  • One-line addition to templates/base/workflow/ index if one exists (or to the manifest).
  • The file states clearly that downstream projects MAY add their own shorthand verbs and MUST preserve the existing ones if they reference the template.

Out of scope

  • A formal verb-vocabulary spec — the rules are guidance, not grammar.
  • Localisation / multi-language variants of the verbs.
  • Tooling to validate downstream CLAUDE.md files against the template.
  • Migrating existing downstream projects to reference the new template — that is per-project follow-up work, not part of this issue.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — nice to havetaskAtomic implementable work

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions