@stacknext/cli 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,27 @@
1
+ export declare const AGENTS_FILE_NAME = "AGENTS.md";
2
+ export declare const AGENT_RULES_BEGIN = "<!-- BEGIN STACKNEXT AGENT RULES -->";
3
+ export declare const AGENT_RULES_END = "<!-- END STACKNEXT AGENT RULES -->";
4
+ export interface AgentPackageDocs {
5
+ name: string;
6
+ version: string;
7
+ docsPath: string;
8
+ visibility: 'public' | 'internal';
9
+ role: string;
10
+ }
11
+ export interface AgentRulesOptions {
12
+ version: string;
13
+ packages: AgentPackageDocs[];
14
+ }
15
+ export interface AgentRulesInstallResult {
16
+ file: string;
17
+ status: 'created' | 'appended' | 'updated' | 'unchanged';
18
+ changed: boolean;
19
+ }
20
+ export declare function discoverAgentPackages(projectDir: string): Promise<AgentPackageDocs[]>;
21
+ export declare function renderAgentRules(options: AgentRulesOptions): string;
22
+ /**
23
+ * Adds or replaces only the managed StackNext block. User content outside the
24
+ * markers is preserved exactly, including its line endings.
25
+ */
26
+ export declare function installAgentRules(projectDir: string, options: AgentRulesOptions): Promise<AgentRulesInstallResult>;
27
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,cAAc,CAAA;AAC3C,eAAO,MAAM,iBAAiB,yCAAyC,CAAA;AACvE,eAAO,MAAM,eAAe,uCAAuC,CAAA;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAA;IACxD,OAAO,EAAE,OAAO,CAAA;CACjB;AA6FD,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAgC7B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAuDnE;AAkBD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAwDlC"}
package/dist/agents.js ADDED
@@ -0,0 +1,226 @@
1
+ import { access, readFile, writeFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ export const AGENTS_FILE_NAME = 'AGENTS.md';
4
+ export const AGENT_RULES_BEGIN = '<!-- BEGIN STACKNEXT AGENT RULES -->';
5
+ export const AGENT_RULES_END = '<!-- END STACKNEXT AGENT RULES -->';
6
+ const PACKAGE_DOCS = [
7
+ {
8
+ slug: 'cli',
9
+ name: '@stacknext/cli',
10
+ visibility: 'public',
11
+ role: 'CLI, collector and dashboard',
12
+ },
13
+ {
14
+ slug: 'next',
15
+ name: '@stacknext/next',
16
+ visibility: 'public',
17
+ role: 'Next.js instrumentation',
18
+ },
19
+ {
20
+ slug: 'core',
21
+ name: '@stacknext/core',
22
+ visibility: 'internal',
23
+ role: 'shared schemas, redaction and transport',
24
+ },
25
+ {
26
+ slug: 'diagnostics',
27
+ name: '@stacknext/diagnostics',
28
+ visibility: 'internal',
29
+ role: 'deterministic findings',
30
+ },
31
+ {
32
+ slug: 'regression',
33
+ name: '@stacknext/regression',
34
+ visibility: 'internal',
35
+ role: 'capture and comparison data',
36
+ },
37
+ {
38
+ slug: 'playwright',
39
+ name: '@stacknext/playwright',
40
+ visibility: 'public',
41
+ role: 'optional Playwright fixture',
42
+ },
43
+ {
44
+ slug: 'drizzle',
45
+ name: '@stacknext/drizzle',
46
+ visibility: 'public',
47
+ role: 'optional Drizzle adapter',
48
+ },
49
+ {
50
+ slug: 'prisma',
51
+ name: '@stacknext/prisma',
52
+ visibility: 'public',
53
+ role: 'optional Prisma adapter',
54
+ },
55
+ {
56
+ slug: 'mcp',
57
+ name: '@stacknext/mcp',
58
+ visibility: 'internal',
59
+ role: 'read-only MCP server',
60
+ },
61
+ {
62
+ slug: 'dashboard',
63
+ name: '@stacknext/dashboard',
64
+ visibility: 'internal',
65
+ role: 'static dashboard',
66
+ },
67
+ ];
68
+ async function exists(file) {
69
+ try {
70
+ await access(file);
71
+ return true;
72
+ }
73
+ catch {
74
+ return false;
75
+ }
76
+ }
77
+ async function findPackageDir(projectDir, slug) {
78
+ let current = path.resolve(projectDir);
79
+ for (;;) {
80
+ const candidate = path.join(current, 'node_modules', '@stacknext', slug);
81
+ if (await exists(path.join(candidate, 'package.json')))
82
+ return candidate;
83
+ const parent = path.dirname(current);
84
+ if (parent === current)
85
+ return null;
86
+ current = parent;
87
+ }
88
+ }
89
+ export async function discoverAgentPackages(projectDir) {
90
+ const found = [];
91
+ const root = path.resolve(projectDir);
92
+ for (const entry of PACKAGE_DOCS) {
93
+ const packageDir = await findPackageDir(root, entry.slug);
94
+ if (!packageDir)
95
+ continue;
96
+ const manifestFile = path.join(packageDir, 'package.json');
97
+ const docsFile = path.join(packageDir, 'docs', 'index.md');
98
+ if (!(await exists(docsFile)))
99
+ continue;
100
+ try {
101
+ const manifest = JSON.parse(await readFile(manifestFile, 'utf8'));
102
+ const name = typeof manifest.name === 'string' ? manifest.name : entry.name;
103
+ const version = typeof manifest.version === 'string' ? manifest.version : 'unknown';
104
+ const docsPath = path
105
+ .relative(root, docsFile)
106
+ .split(path.sep)
107
+ .join('/');
108
+ found.push({
109
+ name,
110
+ version,
111
+ docsPath,
112
+ visibility: entry.visibility,
113
+ role: entry.role,
114
+ });
115
+ }
116
+ catch {
117
+ // An unreadable package manifest is not a reason to reference its docs.
118
+ }
119
+ }
120
+ return found;
121
+ }
122
+ export function renderAgentRules(options) {
123
+ const lines = [
124
+ AGENT_RULES_BEGIN,
125
+ '# StackNext',
126
+ '',
127
+ `StackNext is installed in this project (CLI v${options.version}). Its`,
128
+ 'version-matched documentation ships inside each installed npm package.',
129
+ '',
130
+ 'Before using or changing a StackNext API:',
131
+ '',
132
+ ];
133
+ const steps = [];
134
+ if (options.packages.length === 0) {
135
+ steps.push([
136
+ 'No StackNext package docs were found under `node_modules`. Install',
137
+ '`@stacknext/cli` and the packages you use, then re-run',
138
+ '`stacknext init --agents`. Do not assume package APIs are available.',
139
+ ].join('\n'));
140
+ }
141
+ else {
142
+ const cli = options.packages.find((entry) => entry.name === '@stacknext/cli');
143
+ if (cli) {
144
+ steps.push(`Read \`${cli.docsPath}\` for the local documentation entry point.`);
145
+ }
146
+ const installed = options.packages
147
+ .map((entry) => `- \`${entry.docsPath}\` — ${entry.name} ${entry.version} (${entry.visibility}, ${entry.role})`)
148
+ .join('\n');
149
+ steps.push(`Read the package docs for every StackNext package involved in the task:\n${installed}`);
150
+ steps.push('Confirm the installed version in the package.json next to each\ndocumentation directory. Do not apply documentation for another version.');
151
+ }
152
+ steps.push('Prefer the local documentation over external docs or model memory.', 'Do not assume undocumented exports, configuration keys, internal\npackages or integrations exist.', 'For runtime investigation, use the StackNext MCP tools where available.\nStart with `get_project_summary`; the server is local and read-only.', 'Follow the installed `stacknext-debugging` Agent Skill for debugging and\nperformance workflows.', 'Treat diagnostic findings as evidence, not confirmed root causes, and\n`inconclusive` regression comparisons as inconclusive, not passes.', 'Verify changes against the installed implementation and tests where\navailable. Do not invent a fallback API when a package is absent.');
153
+ for (const [index, step] of steps.entries()) {
154
+ const [first, ...rest] = step.split('\n');
155
+ lines.push(`${index + 1}. ${first}`, ...rest.map((line) => ` ${line}`));
156
+ }
157
+ lines.push(AGENT_RULES_END);
158
+ return lines.join('\n');
159
+ }
160
+ function count(haystack, needle) {
161
+ return haystack.split(needle).length - 1;
162
+ }
163
+ function escapeRegExp(value) {
164
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
165
+ }
166
+ function detectNewline(source) {
167
+ return source.includes('\r\n') ? '\r\n' : '\n';
168
+ }
169
+ function withNewline(block, newline) {
170
+ return newline === '\n' ? block : block.replace(/\n/g, newline);
171
+ }
172
+ /**
173
+ * Adds or replaces only the managed StackNext block. User content outside the
174
+ * markers is preserved exactly, including its line endings.
175
+ */
176
+ export async function installAgentRules(projectDir, options) {
177
+ const file = path.join(projectDir, AGENTS_FILE_NAME);
178
+ const block = renderAgentRules(options);
179
+ let source;
180
+ let created = false;
181
+ try {
182
+ source = await readFile(file, 'utf8');
183
+ }
184
+ catch (error) {
185
+ if (error.code !== 'ENOENT')
186
+ throw error;
187
+ source = '';
188
+ created = true;
189
+ }
190
+ const begins = count(source, AGENT_RULES_BEGIN);
191
+ const ends = count(source, AGENT_RULES_END);
192
+ if (begins > 1 || ends > 1) {
193
+ throw new Error(`${file} contains more than one StackNext managed block. Remove the duplicates before running init again.`);
194
+ }
195
+ if (begins !== ends) {
196
+ throw new Error(`${file} contains an incomplete StackNext managed block. Restore or remove the missing marker before running init again.`);
197
+ }
198
+ const newline = detectNewline(source);
199
+ let next;
200
+ let status;
201
+ if (begins === 1 && ends === 1) {
202
+ const pattern = new RegExp(`${escapeRegExp(AGENT_RULES_BEGIN)}[\\s\\S]*?${escapeRegExp(AGENT_RULES_END)}`);
203
+ if (!pattern.test(source)) {
204
+ throw new Error(`${file} has StackNext markers in an unexpected order. Fix them manually before running init again.`);
205
+ }
206
+ next = source.replace(pattern, withNewline(block, newline));
207
+ status = next === source ? 'unchanged' : 'updated';
208
+ }
209
+ else if (created || source.trim() === '') {
210
+ next = `${withNewline(block, newline)}${newline}`;
211
+ status = 'created';
212
+ }
213
+ else {
214
+ const separator = source.endsWith(`${newline}${newline}`)
215
+ ? ''
216
+ : source.endsWith(newline)
217
+ ? newline
218
+ : `${newline}${newline}`;
219
+ next = `${source}${separator}${withNewline(block, newline)}${newline}`;
220
+ status = 'appended';
221
+ }
222
+ if (next !== source)
223
+ await writeFile(file, next);
224
+ return { file, status, changed: next !== source };
225
+ }
226
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export declare function manualPatchSnippet(): string;
5
5
  export declare function fileExists(file: string): Promise<boolean>;
6
6
  export interface InitOptions {
7
7
  install?: boolean;
8
+ agents?: boolean;
9
+ skipAgents?: boolean;
8
10
  }
9
11
  export declare function runInit(options: InitOptions, cwd?: string): Promise<number>;
10
12
  export declare function registerInitCommand(program: Command, cwd: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqBxC,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CA+CpE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAMlE;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAoBD,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8HxF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CASvE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuBxC,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CA+CpE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAMlE;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAoBD,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiJxF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAWvE"}
@@ -4,6 +4,8 @@ import path from 'node:path';
4
4
  import { CONFIG_FILE_NAME, configPath, loadConfig } from '@stacknext/core/config-file';
5
5
  import { detectProject, installCommand, isStackNextIntegrated, } from '../project.js';
6
6
  import { printCheck, printSection, style } from '../output.js';
7
+ import { CLI_VERSION } from '../version.js';
8
+ import { discoverAgentPackages, installAgentRules } from '../agents.js';
7
9
  function instrumentationTarget(project) {
8
10
  const inSrc = project.appDir?.startsWith('src/') === true ||
9
11
  (project.appDir === null && project.srcDir);
@@ -183,6 +185,24 @@ export async function runInit(options, cwd = process.cwd()) {
183
185
  if (project.hasPrisma) {
184
186
  printCheck('warn', 'Prisma detected', 'Add instrumentPrismaClient() from @stacknext/prisma after creating PrismaClient.');
185
187
  }
188
+ if (options.agents && !options.skipAgents) {
189
+ const packages = await discoverAgentPackages(project.dir);
190
+ const installed = await installAgentRules(project.dir, {
191
+ version: CLI_VERSION,
192
+ packages,
193
+ });
194
+ if (installed.status === 'unchanged') {
195
+ printCheck('pass', `${installed.file} is up to date`, 'managed StackNext block');
196
+ }
197
+ else {
198
+ const action = installed.status === 'created'
199
+ ? 'Created'
200
+ : installed.status === 'appended'
201
+ ? 'Appended StackNext rules to'
202
+ : 'Updated StackNext rules in';
203
+ printCheck('pass', `${action} ${path.relative(project.dir, installed.file)}`, 'managed block only');
204
+ }
205
+ }
186
206
  printSection('Next steps');
187
207
  console.log(`1. Run ${style.cyan('stacknext dev')} (or ${style.cyan('stacknext dev --install')} if packages are missing).`);
188
208
  console.log(`2. Open the dashboard and make a request to your app.`);
@@ -195,6 +215,8 @@ export function registerInitCommand(program, cwd) {
195
215
  .command('init')
196
216
  .description('Configure a Next.js project for StackNext')
197
217
  .option('--install', 'install @stacknext/next with the detected package manager')
218
+ .option('--agents', 'add or update the managed StackNext block in AGENTS.md')
219
+ .option('--skip-agents', 'skip the AGENTS.md managed block (the default)')
198
220
  .action(async (options) => {
199
221
  const code = await runInit(options, cwd);
200
222
  if (code !== 0)
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.8.0";
1
+ export declare const CLI_VERSION = "0.10.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,UAAU,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,WAAW,CAAA"}
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const CLI_VERSION = '0.8.0';
1
+ export const CLI_VERSION = '0.10.0';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAA"}
@@ -0,0 +1,120 @@
1
+ ---
2
+ title: Agent setup
3
+ description: Install StackNext agent instructions, the Agent Skill and the MCP server.
4
+ ---
5
+
6
+ # Agent setup
7
+
8
+ StackNext has three complementary agent surfaces. They do not replace one
9
+ another.
10
+
11
+ <!-- coderabbit-ai-generated:v1 -->
12
+
13
+ <!-- coderabbit-ai-generated-section:v1:6cb91359416b90497c8a30b4e48bca6633004719cf0d0075494ac3fd6e33f50a -->
14
+
15
+ | Surface | Purpose | Command |
16
+ | --- | --- | --- |
17
+ | Local package documentation | Version-matched API reference | Ships in the seven documented packages |
18
+ | Managed `AGENTS.md` block | Short project rules and documentation pointers | `stacknext init --agents` |
19
+ | Agent Skill | Detailed evidence-first workflows | `stacknext skill install` |
20
+ | MCP server | Read-only runtime evidence | `stacknext mcp` |
21
+
22
+ <!-- /coderabbit-ai-generated:v1 -->
23
+
24
+ ## 1. Local documentation
25
+
26
+ <!-- coderabbit-ai-generated:v1 -->
27
+
28
+ <!-- coderabbit-ai-generated-section:v1:5322f074c4bd22377289b52567028ebfbba0bcf2a8678742f28a42cbc3ec8e3c -->
29
+
30
+ The seven packages listed in `DOCUMENTED_PACKAGES` ship `docs/`:
31
+ `@stacknext/cli`, `@stacknext/next`, `@stacknext/core`,
32
+ `@stacknext/regression`, `@stacknext/playwright`, `@stacknext/drizzle` and
33
+ `@stacknext/prisma`. Start with the CLI package's
34
+ `docs/index.md`; the managed block below records its actual path, which may be
35
+ at the workspace root. The generated [package index](packages.md) lists the
36
+ documented packages and which docs to read.
37
+
38
+ <!-- /coderabbit-ai-generated:v1 -->
39
+
40
+ No command is needed; the docs are part of the package archive.
41
+
42
+ ## 2. Managed `AGENTS.md` block
43
+
44
+ ```bash
45
+ stacknext init --agents
46
+ ```
47
+
48
+ This adds a marked block to the project's `AGENTS.md`:
49
+
50
+ ```md
51
+ <!-- BEGIN STACKNEXT AGENT RULES -->
52
+ ...
53
+ <!-- END STACKNEXT AGENT RULES -->
54
+ ```
55
+
56
+ Safety properties:
57
+
58
+ - An existing `AGENTS.md` is never overwritten.
59
+ - Content outside the markers is preserved byte-for-byte (line endings are
60
+ preserved).
61
+ - Re-running updates only the block; it never duplicates it.
62
+ - If only one marker exists, the file is left unchanged and the command fails
63
+ with a clear error instead of guessing.
64
+ - If no `AGENTS.md` exists, one is created.
65
+ - `--skip-agents` is an explicit opt-out for scripts. Agent setup is off by
66
+ default.
67
+
68
+ The block points agents at available package docs and the current StackNext
69
+ version. If no package docs are found, it says so instead of referencing
70
+ nonexistent paths.
71
+
72
+ ## 3. Agent Skill
73
+
74
+ ```bash
75
+ stacknext skill install --client opencode
76
+ stacknext skill install --client codex
77
+ stacknext skill install --client claude-code
78
+ ```
79
+
80
+ | Client | Project path |
81
+ | --- | --- |
82
+ | OpenCode | `.opencode/skills/stacknext-debugging` |
83
+ | Codex | `.agents/skills/stacknext-debugging` |
84
+ | Claude Code | `.claude/skills/stacknext-debugging` |
85
+
86
+ `stacknext skill path` prints the bundled directory and version. `--force`
87
+ replaces an existing skill copy; without it, an existing destination is left
88
+ untouched and the command exits 1.
89
+
90
+ ## 4. MCP server
91
+
92
+ ```bash
93
+ stacknext dev # collector must be running
94
+ stacknext mcp # stdio server
95
+ ```
96
+
97
+ <!-- coderabbit-ai-generated:v1 -->
98
+
99
+ <!-- coderabbit-ai-generated-section:v1:95c82a21ffd412dd8a9b62c44104a3f93a3959e02214cd944fb055ce979258e0 -->
100
+
101
+ Configure the client to start the command from the app directory. See
102
+ [commands](commands.md) for `stacknext mcp` and
103
+ [troubleshooting](troubleshooting.md) for client connection issues.
104
+
105
+ <!-- /coderabbit-ai-generated:v1 -->
106
+
107
+ ## Recommended order
108
+
109
+ 1. Install and initialize StackNext.
110
+ 2. Run `stacknext init --agents` if the project uses `AGENTS.md`.
111
+ 3. Install the skill for the client you use.
112
+ 4. Configure the MCP server.
113
+ 5. Start `stacknext dev` before the agent investigates.
114
+
115
+ ## What StackNext does not do
116
+
117
+ - It does not modify `CLAUDE.md`, `.cursor/rules`, Copilot instructions or
118
+ global client configuration.
119
+ - It does not install the skill without an explicit client flag.
120
+ - It does not add MCP configuration automatically to arbitrary clients.