# Prompt changes in v2.1.323

> 8 changes since v2.1.322, landing in 20 of 20 prompts.

[Web version](https://changelogs.core-directive.com/prompts/2.1.323)

## 1. Ultracode confirmation now called a message from the system

Workflow tool description · line 4

The two Workflow trigger conditions for ultracode now say a "message from the system" confirms the keyword or session mode, where they used to name a system-reminder. The conditions themselves are unchanged.

- +8 / -4 words
- Landed in 17 of 20 prompts (main prompt 6/6, slash commands 3/3, compaction, system reminders 7/7)

```diff
-- The user included the keyword "ultracode" in their prompt (you'll see a system-reminder confirming it).
-- Ultracode is on for the session (a system-reminder confirms it) — see **Ultracode** in the workflow authoring reference.
+- The user included the keyword "ultracode" in their prompt (you'll see a message from the system confirming it).
+- Ultracode is on for the session (a message from the system confirms it) — see **Ultracode** in the workflow authoring reference.
```

## 2. Deferred tool names described as arriving in a system message

ToolSearch tool description · at the opening

ToolSearch now says deferred tools appear by name "in a message from the system" rather than in <system-reminder> messages. How deferred tools are fetched and then called is unchanged.

- +5 / -3 words
- Landed in 20 of 20 prompts (main prompt 6/6, slash commands 3/3, compaction, system reminders 7/7, subagents 3/3)

```diff
-Deferred tools appear by name in <system-reminder> messages. Until fetched, only the name is known — there is no parameter schema, so the tool cannot be invoked. This tool takes a query, matches it against the deferred tool list, and returns the matched tools' complete JSONSchema definitions inside a <functions> block. Once a tool's schema appears in that result, it is callable exactly like any tool defined at the top of the prompt.
+Deferred tools appear by name in a message from the system. Until fetched, only the name is known — there is no parameter schema, so the tool cannot be invoked. This tool takes a query, matches it against the deferred tool list, and returns the matched tools' complete JSONSchema definitions inside a <functions> block. Once a tool's schema appears in that result, it is callable exactly like any tool defined at the top of the prompt.
```

## 3. Skill listing now described as coming from the system

Skill tool description · at the opening

The Skill tool now says available skills appear "in a listing from the system" instead of a system-reminder listing. The guidance on when and how to invoke skills is the same.

- +4 / -3 words
- Landed in 20 of 20 prompts (main prompt 6/6, slash commands 3/3, compaction, system reminders 7/7, subagents 3/3)

```diff
-A skill is a packaged set of instructions the user or project has set up for a particular kind of task (deploy steps, a review checklist, a repo-specific workflow). Available skills appear in a system-reminder listing with one-line descriptions. When the task at hand is one a listed skill covers, call this tool first — the skill's instructions load into the turn for you to follow in place of your default approach; some skills instead run in a subagent and return the finished result. A skill that runs in the background returns only the agent's name — its result arrives later as a task notification, so don't wait on it or invoke it again in the meantime. Users may also ask for one by name (`/<name>`, or "slash command"); that's a request to invoke it.
+A skill is a packaged set of instructions the user or project has set up for a particular kind of task (deploy steps, a review checklist, a repo-specific workflow). Available skills appear in a listing from the system with one-line descriptions. When the task at hand is one a listed skill covers, call this tool first — the skill's instructions load into the turn for you to follow in place of your default approach; some skills instead run in a subagent and return the finished result. A skill that runs in the background returns only the agent's name — its result arrives later as a task notification, so don't wait on it or invoke it again in the meantime. Users may also ask for one by name (`/<name>`, or "slash command"); that's a request to invoke it.
```

## 4. Agent types listed in messages from the system, not system-reminders

Agent tool description · at the opening

The Agent tool now says available agent types are listed in "messages from the system" rather than in <system-reminder> messages. This is a wording change with no change in behaviour.

- +4 / -3 words
- Landed in 18 of 20 prompts (main prompt 6/6, slash commands 3/3, compaction, system reminders 7/7, subagents 1/3)

```diff
-Available agent types are listed in <system-reminder> messages in the conversation.
+Available agent types are listed in messages from the system in the conversation.
```

## 5. Ship-audit example prompt says feature flag instead of GrowthBook gate

Agent tool description · under “Writing the prompt”

In the example subagent prompt for auditing a branch before shipping, "the GrowthBook gate" is replaced with the generic "the feature flag". The example otherwise reads the same. It appeared in only 6 of 17 captures.

- +2 / -2 words
- Landed in 6 of 20 prompts (main prompt 6/6)

```diff
-  prompt: "Audit what's left before this branch can ship. Check: uncommitted changes, commits ahead of main, whether tests exist, whether the GrowthBook gate is wired up, whether CI-relevant files changed. Report a punch list — done vs. missing. Under 200 words."
+  prompt: "Audit what's left before this branch can ship. Check: uncommitted changes, commits ahead of main, whether tests exist, whether the feature flag is wired up, whether CI-relevant files changed. Report a punch list — done vs. missing. Under 200 words."
```

## 6. Audit example reply says feature flag instead of GrowthBook gate

Agent tool description · under “Writing the prompt”

The example assistant reply summarizing the audit now lists a "feature flag" blocker instead of a "GrowthBook gate" blocker. This matches the edit to the example prompt, and the meaning is the same. It appeared in only 6 of 17 captures.

- +2 / -2 words
- Landed in 6 of 20 prompts (main prompt 6/6)

```diff
-assistant: Audit's back. Three blockers: no tests for the new prompt path, GrowthBook gate wired but not in build_flags.yaml, and one uncommitted file.
+assistant: Audit's back. Three blockers: no tests for the new prompt path, feature flag wired but not in build_flags.yaml, and one uncommitted file.
```

## 7. Git commit rule adds .claude/settings.local.json as a likely secret

Bash tool description · under “Committing changes with git”

The Bash git guidance now names .claude/settings.local.json alongside .env and credentials.json as files Claude should not commit. Claude should warn the user if they ask to commit it. This appeared in 6 of 17 captures.

- +4 / -0 words
- Landed in 6 of 20 prompts (main prompt 6/6)

```diff
-  - Do not commit files that likely contain secrets (.env, credentials.json, etc). Warn the user if they specifically request to commit those files
+  - Do not commit files that likely contain secrets (.env, credentials.json, .claude/settings.local.json, etc). Warn the user if they specifically request to commit those files
```

## 8. init and security-review skills get one-line descriptions

Appended context (skills, environment) · entries “init” and “security-review”

In the appended skills listing, init and security-review now carry descriptions. init creates a CLAUDE.md with codebase documentation, and security-review reviews the pending changes on the current branch. Before, only their names were listed. This appeared in 6 of 17 captures.

- Only for default
- +24 / -3 words
- Landed in 6 of 20 prompts (main prompt 6/6)

```diff
-- init
-- security-review
+- init: Initialize a new CLAUDE.md file with codebase documentation
+- security-review: Complete a security review of the pending changes on the current branch
```

## Where each change landed
- [Claude Code, default](https://changelogs.core-directive.com/prompts/2.1.323/system?arm=cli): #1, #2, #3, #4, #5, #6, #7, #8
- [Claude Code, seeded with this account's feature flags](https://changelogs.core-directive.com/prompts/2.1.323/system?arm=cli&config=flags-account): #1, #2, #3, #4, #5, #6, #7, #8
- [Claude Code, seeded with anonymous feature flags](https://changelogs.core-directive.com/prompts/2.1.323/system?arm=cli&config=flags-anon): #1, #2, #3, #4, #5, #6, #7, #8
- [Agent SDK, default](https://changelogs.core-directive.com/prompts/2.1.323/system?arm=sdk-cli): #1, #2, #3, #4, #5, #6, #7, #8
- [Agent SDK, seeded with this account's feature flags](https://changelogs.core-directive.com/prompts/2.1.323/system?arm=sdk-cli&config=flags-account): #1, #2, #3, #4, #5, #6, #7, #8
- [Agent SDK, seeded with anonymous feature flags](https://changelogs.core-directive.com/prompts/2.1.323/system?arm=sdk-cli&config=flags-anon): #1, #2, #3, #4, #5, #6, #7, #8
- [Slash commands: /init](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=command-init&arm=sdk-cli): #1, #2, #3, #4
- [Slash commands: /security-review](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=command-security-review&arm=sdk-cli): #1, #2, #3, #4
- [Slash commands: /team-onboarding](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=command-team-onboarding&arm=sdk-cli): #1, #2, #3, #4
- [Compaction: Compaction instruction](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=compaction&arm=cli): #1, #2, #3, #4
- [System reminders: Claude md](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=reminder-claude-md&arm=sdk-cli): #1, #2, #3, #4
- [System reminders: Hook pretool block](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=reminder-hook-pretool-block&arm=sdk-cli): #1, #2, #3, #4
- [System reminders: Read empty](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=reminder-read-empty&arm=sdk-cli): #1, #2, #3, #4
- [System reminders: Read offset](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=reminder-read-offset&arm=sdk-cli): #1, #2, #3, #4
- [System reminders: Skill run](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=reminder-skill-run&arm=sdk-cli): #1, #2, #3, #4
- [System reminders: Todo nag](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=reminder-todo-nag&arm=sdk-cli): #1, #2, #3, #4
- [System reminders: Toolsearch deferred](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=reminder-toolsearch-deferred&arm=sdk-cli): #1, #2, #3, #4
- [Subagents: explore](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=subagent-explore&arm=sdk-cli): #2, #3
- [Subagents: general-purpose](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=subagent-general-purpose&arm=sdk-cli): #2, #3, #4
- [Subagents: plan](https://changelogs.core-directive.com/prompts/2.1.323/system?surface=subagent-plan&arm=sdk-cli): #2, #3

## Did not change
- 26 tool descriptions are word for word the same, 5 moved and are listed above. Unchanged: AskUserQuestion, CronCreate, CronDelete, CronList, DeferredToolPlaceholder, Edit, EnterPlanMode, EnterWorktree, ExitPlanMode, ExitWorktree, ListAgents, Monitor, NotebookEdit, PushNotification, Read, ReportFindings, ScheduleWakeup, SendMessage, TaskCreate, TaskGet, TaskList, TaskStop, TaskUpdate, WebFetch, WebSearch, Write.
- set aside as capture noise: 352 billing header lines
- set aside as capture noise: 220 capture date lines
- set aside as capture noise: 220 host kernel lines
