Skip to content

Commit ebd7430

Browse files
nickwesselmanclaude
andcommitted
Refer to app security checks generically instead of "App Security"
Replace the title-cased "App Security" product name in command help, messages, agent instructions, check prompts, comments, and tests with generic wording: "app security check" and "app security check results". Regenerates the embedded checks, oclif manifest, and docs. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 809fd38 commit ebd7430

38 files changed

Lines changed: 89 additions & 79 deletions
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@shopify/app': patch
3+
'@shopify/cli': patch
4+
---
5+
6+
Refer to `shopify app security` results and instructions as an app security check instead of the title-cased "App Security"

‎packages/app/src/cli/commands/app/security/check.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ export default class SecurityCheck extends BaseCommand {
1111
static summary =
1212
'Check an app for Shopify-specific security issues and write deterministic-findings.json and agent-checks.json.'
1313

14-
static descriptionWithMarkdown = `Runs Shopify App Security locally and writes \`deterministic-findings.json\` and \`agent-checks.json\` to the results directory, \`.shopify/app-security/<results key>/\`. The results key is \`--client-id\` when you pass it, and otherwise the name of the app configuration file without \`.toml\`; the other \`app security\` commands take the same selection flags and find the same directory. Every run replaces both files, so it's always safe to run the check again.
14+
static descriptionWithMarkdown = `Runs an app security check locally and writes \`deterministic-findings.json\` and \`agent-checks.json\` to the results directory, \`.shopify/app-security/<results key>/\`. The results key is \`--client-id\` when you pass it, and otherwise the name of the app configuration file without \`.toml\`; the other \`app security\` commands take the same selection flags and find the same directory. Every run replaces both files, so it's always safe to run the check again.
1515
16-
\`deterministic-findings.json\` holds the deterministic scan results. \`agent-checks.json\` holds the checks for your coding agent to investigate; the agent's results are recorded with \`shopify app security record\`. Use \`--config\` to select a specific app configuration when the project has multiple \`shopify.app*.toml\` files; App Security inspects only that configuration. Use \`--client-id\` to replace the configuration's client ID for this run. When no app configuration exists, use \`--without-app-config --client-id <client-id>\` to scan \`--path\` anyway with config checks skipped; in an interactive terminal the command offers to do this.
16+
\`deterministic-findings.json\` holds the deterministic scan results. \`agent-checks.json\` holds the checks for your coding agent to investigate; the agent's results are recorded with \`shopify app security record\`. Use \`--config\` to select a specific app configuration when the project has multiple \`shopify.app*.toml\` files; the check inspects only that configuration. Use \`--client-id\` to replace the configuration's client ID for this run. When no app configuration exists, use \`--without-app-config --client-id <client-id>\` to scan \`--path\` anyway with config checks skipped; in an interactive terminal the command offers to do this.
1717
1818
The check scans the app directory and each \`--include-dir\`. Git ignore rules apply by default: a file or directory that Git ignores is skipped, using the rules of the repository that contains it, while files that Git tracks are always scanned. Use \`--no-git-ignore\` to turn Git ignore rules off for every scanned directory.
1919

‎packages/app/src/cli/commands/app/security/clean.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ describe('app security clean command', () => {
148148

149149
const printed = await runRejected(['--path', directory])
150150

151-
expect(printed).toContain('No App Security results for shopify.app in')
151+
expect(printed).toContain('No app security check results for shopify.app in')
152152
expect(printed).toContain('shopify app security check')
153153
expect(securityClean).not.toHaveBeenCalled()
154154
})

‎packages/app/src/cli/commands/app/security/clean.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {outputResult} from '@shopify/cli-kit/node/output'
1111
export default class SecurityClean extends BaseCommand {
1212
static hidden = true
1313

14-
static summary = 'Remove local App Security results.'
14+
static summary = 'Remove local app security check results.'
1515

1616
static descriptionWithMarkdown = `Deletes the results directory, \`.shopify/app-security/<results key>/\`, without asking. The results key is \`--client-id\` when you pass it, and otherwise the name of the app configuration file without \`.toml\`. Other results directories are left alone. Prints each removed path.
1717

‎packages/app/src/cli/commands/app/security/instructions.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ describe('app security instructions command', () => {
159159
'process.exit unexpectedly called with "1"',
160160
)
161161

162-
expect(output.error()).toContain('No App Security results for shopify.app in')
162+
expect(output.error()).toContain('No app security check results for shopify.app in')
163163
expect(output.error()).toContain('shopify app security check')
164164
expect(deliverAppSecurityInstructions).not.toHaveBeenCalled()
165165
} finally {

‎packages/app/src/cli/commands/app/security/instructions.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ import {resolvePath} from '@shopify/cli-kit/node/path'
1111
export default class SecurityInstructions extends BaseCommand {
1212
static hidden = true
1313

14-
static summary = 'Provide App Security instructions to a coding agent.'
14+
static summary = 'Provide app security check instructions to a coding agent.'
1515

16-
static descriptionWithMarkdown = `Prints the complete workflow that a coding agent should follow to review App Security results.
16+
static descriptionWithMarkdown = `Prints the complete workflow that a coding agent should follow to review app security check results.
1717
1818
By default, the instructions are printed to stdout. Use \`--copy\` to copy them to the clipboard or \`--write\` to write them to a file. Standalone instructions always start by running \`shopify app security check\`; only that invocation's generated review pack is trusted as workflow input.`
1919

‎packages/app/src/cli/commands/app/security/record.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ describe('app security record command', () => {
153153
'process.exit unexpectedly called with "1"',
154154
)
155155

156-
expect(output.error()).toContain('No App Security results for shopify.app in')
156+
expect(output.error()).toContain('No app security check results for shopify.app in')
157157
expect(output.error()).toContain('shopify app security check')
158158
expect(securityRecord).not.toHaveBeenCalled()
159159
} finally {

‎packages/app/src/cli/commands/app/security/record.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {outputResult} from '@shopify/cli-kit/node/output'
1010
export default class SecurityRecord extends BaseCommand {
1111
static hidden = true
1212

13-
static summary = 'Record agent App Security findings.'
13+
static summary = 'Record agent findings from an app security check.'
1414

1515
static descriptionWithMarkdown = `Reads a coding agent's complete findings document from stdin, validates it, and replaces \`agent-findings.json\` in the results directory, \`.shopify/app-security/<results key>/\`. The results key is \`--client-id\` when you pass it, and otherwise the name of the app configuration file without \`.toml\`.
1616

‎packages/app/src/cli/commands/app/security/review.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {globalFlags, jsonFlag} from '@shopify/cli-kit/node/cli'
99
export default class SecurityReview extends BaseCommand {
1010
static hidden = true
1111

12-
static summary = 'Show the combined App Security results.'
12+
static summary = 'Show the combined app security check results.'
1313

1414
static descriptionWithMarkdown = `Combines the deterministic results (\`deterministic-findings.json\`, written by \`shopify app security check\`) with the recorded agent results (\`agent-findings.json\`, written by \`shopify app security record\`) and shows one view of every check: its findings, status and source. Both files are in the results directory, \`.shopify/app-security/<results key>/\`.
1515

‎packages/app/src/cli/index.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import SecurityReview from './commands/app/security/review.js'
77
import {describe, expect, test} from 'vitest'
88

99
describe('@shopify/app command registration', () => {
10-
test('registers App Security commands', () => {
10+
test('registers app security commands', () => {
1111
expect(commands['app:security:check']).toBe(SecurityCheck)
1212
expect(commands['app:security:clean']).toBe(SecurityClean)
1313
expect(commands['app:security:instructions']).toBe(SecurityInstructions)

0 commit comments

Comments
 (0)