Skip to content

chore(claude-code): drop opinionated bankMission/retainMission defaults (#2492) - #2494

Closed
nicolas-vivot wants to merge 1 commit into
vectorize-io:mainfrom
nicolas-vivot:fix/claude-code-empty-mission-defaults
Closed

chore(claude-code): drop opinionated bankMission/retainMission defaults (#2492)#2494
nicolas-vivot wants to merge 1 commit into
vectorize-io:mainfrom
nicolas-vivot:fix/claude-code-empty-mission-defaults

Conversation

@nicolas-vivot

Copy link
Copy Markdown
Contributor

Summary

Part of #2492. Removes the opinionated bankMission / retainMission defaults shipped in the Claude Code plugin's settings.json, which are what triggered the mission-clobber for default installs.

The bundled settings.json shipped:

"bankMission":   "You are a Claude Code AI assistant. Focus on technical discussions, decisions, and context relevant to the user's projects.",
"retainMission": "Extract technical decisions, architectural choices, user preferences, project context, and people/tool relationships. Ignore routine greetings and transient operational details.",

So any default install stamped a generic persona onto a bank the first time the plugin touched it — overwriting per-bank missions authored via the control plane / API. This blanks both to match the plugin's own internal defaults (config.py: bankMission="", retainMission=None), so the plugin only seeds missions the user explicitly configures.

Changes

  • settings.jsonbankMission: "", retainMission: null.
  • README.md — config table default column updated to "" / null (unset), documenting opt-in seeding.
  • CHANGELOG.mdChanged entry.

Behaviour

No behavioural change when the fields are empty: bank.py already treats an empty/None mission as an opt-out and sends nothing. "" vs null is a typing convention only (bankMission is a str, retainMission is Optional[str]) — both are falsy and indistinguishable to the code.

Relationship to the other PR

This is the defaults-removal half of #2492, deliberately kept separate from the server-aware seeding fix (#2493) so each can be adopted independently:

Note: #2493 and this PR touch adjacent regions of README.md / CHANGELOG.md; depending on merge order a trivial conflict may need resolving.

Tests

Full Claude Code plugin suite passes (192 tests); settings.json validated as JSON.

…ts (vectorize-io#2492)

The bundled settings.json shipped non-empty bankMission/retainMission
defaults, so a default install stamped a generic persona onto a bank on
first touch — the trigger for the mission-clobber reported in vectorize-io#2492. Blank
both (matching the internal config.py defaults: "" and null) so the plugin
only seeds missions the user explicitly configures.

Behaviour is unchanged when the fields are empty: bank.py already treats an
empty/None mission as opt-out and sends nothing.

This is the defaults-removal half of vectorize-io#2492, kept separate from the
server-aware seeding fix so each can be adopted independently.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@nicoloboschi nicoloboschi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should document it, not changing the default, thanks

@nicolas-vivot

nicolas-vivot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

@nicoloboschi Got it. Could you have a look at this one? (the real fix / non optional fix IMO) (fixes this reported issue)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants