@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.
- package/.agent-context/state/memory-continuity-benchmark.json +1 -1
- package/.cursorrules +1 -1
- package/.windsurfrules +1 -1
- package/README.md +13 -4
- package/lib/cli/commands/init.mjs +7 -2
- package/lib/cli/compiler.mjs +14 -0
- package/lib/cli/utils.mjs +81 -13
- package/package.json +1 -1
- package/scripts/validate.mjs +4 -2
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
|
+
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
|
+
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
|
|
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:
|
|
558
|
-
- V3.0:
|
|
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:
|
|
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
|
|
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 {
|
package/lib/cli/compiler.mjs
CHANGED
|
@@ -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
|
|
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
|
|
141
|
-
const
|
|
142
|
+
const projectName = path.basename(resolvedTargetDirectoryPath);
|
|
143
|
+
const mcpArgs = ['./scripts/mcp-server.mjs'];
|
|
142
144
|
|
|
143
|
-
|
|
144
|
-
|
|
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:
|
|
153
|
+
args: mcpArgs,
|
|
151
154
|
},
|
|
152
155
|
},
|
|
153
156
|
};
|
|
154
157
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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
package/scripts/validate.mjs
CHANGED
|
@@ -743,10 +743,12 @@ async function validateMcpConfiguration() {
|
|
|
743
743
|
fail('MCP test server must use Node');
|
|
744
744
|
}
|
|
745
745
|
|
|
746
|
-
if (workspaceMcpConfiguration.$schema === '
|
|
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
|
|
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') {
|