@ryuenn3123/agentic-senior-core 2.5.3 → 2.5.5

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-04-17T03:41:09.595Z",
2
+ "generatedAt": "2026-04-17T04:24:00.020Z",
3
3
  "reportName": "memory-continuity-benchmark",
4
4
  "schemaVersion": "1.0.0",
5
5
  "passed": true,
package/.cursorrules CHANGED
@@ -1,6 +1,6 @@
1
1
  # AGENTIC-SENIOR-CORE DYNAMIC GOVERNANCE RULESET
2
2
 
3
- Generated by Agentic-Senior-Core CLI v2.5.3
3
+ Generated by Agentic-Senior-Core CLI v2.5.5
4
4
  Timestamp: 2026-04-15T00:14:51.184Z
5
5
  Selected profile: beginner
6
6
  Selected policy file: .agent-context/policies/llm-judge-threshold.json
package/.windsurfrules CHANGED
@@ -1,6 +1,6 @@
1
1
  # AGENTIC-SENIOR-CORE DYNAMIC GOVERNANCE RULESET
2
2
 
3
- Generated by Agentic-Senior-Core CLI v2.5.3
3
+ Generated by Agentic-Senior-Core CLI v2.5.5
4
4
  Timestamp: 2026-04-15T00:14:51.184Z
5
5
  Selected profile: beginner
6
6
  Selected policy file: .agent-context/policies/llm-judge-threshold.json
package/README.md CHANGED
@@ -152,7 +152,8 @@ npx @ryuenn3123/agentic-senior-core init --newbie
152
152
  - `init` project discovery accepts answers in any language; prompts stay in English, but non-English answers are supported.
153
153
  - Generated docs default to English for consistency; use `--docs-lang` only when you explicitly need a different output language.
154
154
  - After docs scaffolding, CLI prints prompt starter examples so users can iterate by prompt without rewriting full project context.
155
- - MCP server registration and trust/start are manual in IDE settings.
155
+ - MCP server trust approval is manual in IDE settings (initial start).
156
+ - Optional MCP auto-restart on config changes is available via `chat.mcp.autoStart` (Experimental setting in VS Code).
156
157
  - MCP workspace scaffold is opt-in via `--mcp-template` and creates `.vscode/mcp.json`.
157
158
 
158
159
  **What files are created?**
@@ -180,6 +181,9 @@ npx @ryuenn3123/agentic-senior-core init --mcp-template
180
181
  3. Confirm the file is `.vscode/mcp.json` with server `agentic-senior-core`.
181
182
  4. The generated server command is `node ./scripts/mcp-server.mjs` with `cwd` set to `${workspaceFolder}`.
182
183
  5. Open Chat Customizations > MCP Servers, then trust/start the server.
184
+ 6. Optional: enable `chat.mcp.autoStart` in VS Code Settings to auto-restart MCP servers when config changes are detected.
185
+
186
+ If VS Code shows `Property $schema is not allowed` for `.vscode/mcp.json`, remove the `$schema` field. Newer MCP configuration schema versions infer this automatically.
183
187
 
184
188
  If logs repeatedly show `Waiting for server to respond to initialize request`, upgrade to the latest package version, regenerate the workspace config with `--mcp-template`, and restart the MCP server.
185
189
 
@@ -553,9 +557,14 @@ Important notes for maintainers and forks:
553
557
  - Operations playbook and release-operations checklist shipped.
554
558
 
555
559
  ### Current Forward Plan
556
- - V2.0: Skill marketplace trust tiers, transactional installs, rollback safety, and launch-menu onboarding.
557
- - V2.5: Cross-model benchmark harness, anti-regression quality gates, and advanced frontend design quality track (non-template UI direction, stronger UX craft, and frontend parity beyond baseline benchmark repos).
558
- - V3.0: Enterprise governance cloud, policy drift detection, and org-level override registry.
560
+ - V2.0: Delivered baseline maintained. Skill marketplace trust tiers, transactional installs, rollback safety, and launch-menu onboarding are active foundations.
561
+ - V2.5: Released. Benchmark anti-regression track, frontend excellence enforcement, and memory continuity pilot are complete.
562
+ - V3.0: Planning and intake phase for enterprise governance cloud, policy drift detection, and org-level override registry.
563
+
564
+ Roadmap-first execution policy for V3.0:
565
+ 1. Record ideas (optimization, refactor, reliability, security, DX) in roadmap top goals first.
566
+ 2. Define measurable success metrics and explicit exit criteria before execution.
567
+ 3. Bump to `3.0.0` only after V3.0 exit criteria are fully satisfied.
559
568
 
560
569
  Detailed timeline and success metrics: [docs/roadmap.md](docs/roadmap.md)
561
570
 
@@ -77,7 +77,7 @@ export function parseInitArguments(commandArguments) {
77
77
  tokenOptimize: true,
78
78
  memoryContinuity: true,
79
79
  tokenAgent: 'copilot',
80
- includeMcpTemplate: false,
80
+ includeMcpTemplate: true,
81
81
  scaffoldDocs: undefined,
82
82
  docsLang: 'en',
83
83
  docsLangProvided: false,
@@ -202,6 +202,11 @@ export function parseInitArguments(commandArguments) {
202
202
  continue;
203
203
  }
204
204
 
205
+ if (currentArgument === '--no-mcp-template') {
206
+ parsedInitOptions.includeMcpTemplate = false;
207
+ continue;
208
+ }
209
+
205
210
  if (currentArgument === '--scaffold-docs') {
206
211
  parsedInitOptions.scaffoldDocs = true;
207
212
  continue;
@@ -932,7 +937,7 @@ export async function runInitCommand(targetDirectoryArgument, initOptions = {})
932
937
  console.log(`- Project docs language: ${scaffoldingResult.docsLanguage}`);
933
938
  }
934
939
  console.log(`- Repository workflows copied: no (workflows remain source-repo assets)`);
935
- console.log(`- MCP template file: ${shouldIncludeMcpTemplate ? 'created (.vscode/mcp.json)' : 'not created by default (use --mcp-template)'}`);
940
+ console.log(`- MCP configuration: ${shouldIncludeMcpTemplate ? 'auto-configured for your IDEs (VS Code, Cursor, Zed, Gemini)' : 'disabled (--no-mcp-template)'}`);
936
941
  if (isMemoryContinuityEnabled) {
937
942
  console.log('- Memory continuity policy: enabled (index + selective hydration)');
938
943
  } else {
@@ -390,4 +390,18 @@ export async function compileDynamicContext({
390
390
 
391
391
  await fs.writeFile(path.join(resolvedTargetDirectoryPath, '.cursorrules'), compiledRules, 'utf8');
392
392
  await fs.writeFile(path.join(resolvedTargetDirectoryPath, '.windsurfrules'), compiledRules, 'utf8');
393
+
394
+ // Gemini (Antigravity Editor) instructions
395
+ const geminiDir = path.join(resolvedTargetDirectoryPath, '.gemini');
396
+ if (!(await pathExists(geminiDir))) {
397
+ await fs.mkdir(geminiDir, { recursive: true });
398
+ }
399
+ await fs.writeFile(path.join(geminiDir, 'instructions.md'), compiledRules, 'utf8');
400
+
401
+ // Copilot instructions (also used by some generic IDE extensions)
402
+ const githubDir = path.join(resolvedTargetDirectoryPath, '.github');
403
+ if (!(await pathExists(githubDir))) {
404
+ await fs.mkdir(githubDir, { recursive: true });
405
+ }
406
+ await fs.writeFile(path.join(githubDir, 'copilot-instructions.md'), compiledRules, 'utf8');
393
407
  }
package/lib/cli/utils.mjs CHANGED
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import fs from 'node:fs/promises';
6
6
  import path from 'node:path';
7
+ import os from 'node:os';
7
8
 
8
9
  import {
9
10
  REPO_ROOT,
@@ -51,7 +52,8 @@ export function printUsage() {
51
52
  console.log(' --no-token-optimize Disable token optimization policy during init');
52
53
  console.log(' --memory-continuity Explicitly enable cross-session memory continuity policy during init (default behavior)');
53
54
  console.log(' --no-memory-continuity Disable memory continuity policy during init');
54
- console.log(' --mcp-template Create .vscode/mcp.json workspace template (MCP trust/start remains manual in IDE)');
55
+ console.log(' --mcp-template Explicitly enable cross-IDE MCP auto-configuration (default behavior)');
56
+ console.log(' --no-mcp-template Disable automatic MCP configuration across your IDEs');
55
57
  console.log(' --scaffold-docs Force project documentation scaffolding (architecture, database, API, flow)');
56
58
  console.log(' --no-scaffold-docs Skip project documentation scaffolding');
57
59
  console.log(' --docs-lang Optional override for generated project docs language (default: en)');
@@ -137,30 +139,96 @@ export async function copyGovernanceAssetsToTarget(
137
139
  }
138
140
 
139
141
  if (shouldIncludeMcpTemplate) {
140
- const vscodeDirectoryPath = path.join(resolvedTargetDirectoryPath, '.vscode');
141
- const workspaceMcpConfigurationPath = path.join(vscodeDirectoryPath, 'mcp.json');
142
+ const projectName = path.basename(resolvedTargetDirectoryPath);
143
+ const mcpArgs = ['./scripts/mcp-server.mjs'];
142
144
 
143
- const workspaceMcpConfiguration = {
144
- $schema: 'vscode://schemas/mcp',
145
+ // 1. VS Code & 2. Cursor (Workspace Local Settings)
146
+ const ideLocalDirs = ['.vscode', '.cursor'];
147
+ const workspaceMcpConfig = {
145
148
  servers: {
146
149
  'agentic-senior-core': {
147
150
  type: 'stdio',
148
151
  command: 'node',
149
152
  cwd: '${workspaceFolder}',
150
- args: ['./scripts/mcp-server.mjs'],
153
+ args: mcpArgs,
151
154
  },
152
155
  },
153
156
  };
154
157
 
155
- if (!(await pathExists(workspaceMcpConfigurationPath))) {
156
- await ensureDirectory(vscodeDirectoryPath);
157
- await fs.writeFile(
158
- workspaceMcpConfigurationPath,
159
- JSON.stringify(workspaceMcpConfiguration, null, 2) + '\n',
160
- 'utf8'
161
- );
158
+ for (const ideDir of ideLocalDirs) {
159
+ const dirPath = path.join(resolvedTargetDirectoryPath, ideDir);
160
+ const mcpJsonPath = path.join(dirPath, 'mcp.json');
161
+
162
+ if (!(await pathExists(mcpJsonPath))) {
163
+ await ensureDirectory(dirPath);
164
+ await fs.writeFile(mcpJsonPath, JSON.stringify(workspaceMcpConfig, null, 2) + '\n', 'utf8');
165
+ }
166
+ }
167
+
168
+ // 3. Zed IDE (Workspace Local Settings)
169
+ const zedDirPath = path.join(resolvedTargetDirectoryPath, '.zed');
170
+ const zedSettingsPath = path.join(zedDirPath, 'settings.json');
171
+ const zedMcpConfig = {
172
+ context_servers: {
173
+ 'agentic-senior-core': {
174
+ command: 'node',
175
+ env: {},
176
+ args: mcpArgs,
177
+ },
178
+ },
179
+ };
180
+
181
+ if (!(await pathExists(zedSettingsPath))) {
182
+ await ensureDirectory(zedDirPath);
183
+ await fs.writeFile(zedSettingsPath, JSON.stringify(zedMcpConfig, null, 2) + '\n', 'utf8');
184
+ } else {
185
+ try {
186
+ const existingZedContent = await fs.readFile(zedSettingsPath, 'utf8');
187
+ const parsedZedSettings = JSON.parse(existingZedContent);
188
+ if (!parsedZedSettings.context_servers) {
189
+ parsedZedSettings.context_servers = {};
190
+ }
191
+ if (!parsedZedSettings.context_servers['agentic-senior-core']) {
192
+ parsedZedSettings.context_servers['agentic-senior-core'] = zedMcpConfig.context_servers['agentic-senior-core'];
193
+ await fs.writeFile(zedSettingsPath, JSON.stringify(parsedZedSettings, null, 2) + '\n', 'utf8');
194
+ }
195
+ } catch (err) {
196
+ // Fallback or ignore if user has broken JSON
197
+ }
198
+ }
199
+
200
+ // 4. Antigravity / Gemini (Global Settings)
201
+ try {
202
+ const globalGeminiDir = path.join(os.homedir(), '.gemini', 'antigravity');
203
+ const globalGeminiMcpPath = path.join(globalGeminiDir, 'mcp_config.json');
204
+
205
+ if (await pathExists(globalGeminiDir)) {
206
+ let geminiConfig = { mcpServers: {} };
207
+ if (await pathExists(globalGeminiMcpPath)) {
208
+ const content = await fs.readFile(globalGeminiMcpPath, 'utf8');
209
+ if (content.trim()) {
210
+ try { geminiConfig = JSON.parse(content); } catch (e) {}
211
+ }
212
+ }
213
+ if (!geminiConfig.mcpServers) geminiConfig.mcpServers = {};
214
+
215
+ const safeProjectName = projectName.replace(/[^a-zA-Z0-9_-]/g, '-');
216
+ const uniqueServerName = `agentic-senior-core-${safeProjectName}`;
217
+
218
+ // For global configs, we use absolute path for cwd
219
+ geminiConfig.mcpServers[uniqueServerName] = {
220
+ command: 'node',
221
+ args: mcpArgs,
222
+ cwd: resolvedTargetDirectoryPath,
223
+ };
224
+
225
+ await fs.writeFile(globalGeminiMcpPath, JSON.stringify(geminiConfig, null, 2) + '\n', 'utf8');
226
+ }
227
+ } catch (err) {
228
+ // Ignore global injection errors (e.g. permission issues or user doesn't use it)
162
229
  }
163
230
  }
231
+
164
232
  }
165
233
 
166
234
  export async function askChoice(promptMessage, options, userInterface) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuenn3123/agentic-senior-core",
3
- "version": "2.5.3",
3
+ "version": "2.5.5",
4
4
  "type": "module",
5
5
  "description": "Force your AI Agent to code like a Staff Engineer, not a Junior.",
6
6
  "bin": {
@@ -743,10 +743,12 @@ async function validateMcpConfiguration() {
743
743
  fail('MCP test server must use Node');
744
744
  }
745
745
 
746
- if (workspaceMcpConfiguration.$schema === 'vscode://schemas/mcp') {
746
+ if (typeof workspaceMcpConfiguration.$schema === 'undefined') {
747
+ pass('Workspace MCP config omits $schema (supported by current VS Code MCP schema inference)');
748
+ } else if (workspaceMcpConfiguration.$schema === 'vscode://schemas/mcp') {
747
749
  pass('Workspace MCP config uses trusted VS Code schema');
748
750
  } else {
749
- fail('Workspace MCP config must use $schema: vscode://schemas/mcp');
751
+ fail('Workspace MCP config $schema must be omitted or set to vscode://schemas/mcp');
750
752
  }
751
753
 
752
754
  if (workspaceServerConfig?.command === 'node') {