@ryuenn3123/agentic-senior-core 2.0.9 → 2.0.10
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/.cursorrules +1 -1
- package/.windsurfrules +1 -1
- package/README.md +71 -48
- package/package.json +2 -2
- package/scripts/mcp-server.mjs +28 -4
- package/scripts/validate.mjs +1 -0
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.0.
|
|
3
|
+
Generated by Agentic-Senior-Core CLI v2.0.10
|
|
4
4
|
Timestamp: 2026-04-08T14:58:53.570Z
|
|
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.0.
|
|
3
|
+
Generated by Agentic-Senior-Core CLI v2.0.10
|
|
4
4
|
Timestamp: 2026-04-08T14:58:53.570Z
|
|
5
5
|
Selected profile: beginner
|
|
6
6
|
Selected policy file: .agent-context/policies/llm-judge-threshold.json
|
package/README.md
CHANGED
|
@@ -38,54 +38,45 @@ AI: *Creates properly layered modules with Zod validation, typed errors,
|
|
|
38
38
|
|
|
39
39
|
## Quick Start
|
|
40
40
|
|
|
41
|
-
###
|
|
41
|
+
### Method 1 (Recommended): npm package
|
|
42
42
|
|
|
43
|
-
The
|
|
44
|
-
The **Use this template** button is in the GitHub repository header (top-right area), not inside this README text.
|
|
45
|
-
If you prefer a direct link, open: **[Create from template](https://github.com/fatidaprilian/Agentic-Senior-Core/generate)**.
|
|
46
|
-
Your new repository will instantly possess all the rules, configurations, and AI context files directly out of the box — zero CLI needed.
|
|
47
|
-
|
|
48
|
-
### Option 0: NPM Install (Local or Global)
|
|
49
|
-
|
|
50
|
-
If you already know you want the CLI from npm, use one of these paths:
|
|
43
|
+
The npm package is already published. For most users, this is the default path.
|
|
51
44
|
|
|
52
45
|
```bash
|
|
46
|
+
npm exec --yes @ryuenn3123/agentic-senior-core launch
|
|
53
47
|
npm exec --yes @ryuenn3123/agentic-senior-core init
|
|
54
|
-
|
|
55
|
-
agentic-senior-core init
|
|
48
|
+
npx @ryuenn3123/agentic-senior-core init
|
|
56
49
|
```
|
|
57
50
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
If npm package publication is not ready yet, run the CLI directly from GitHub and still keep the full interactive experience.
|
|
51
|
+
If you prefer a global install:
|
|
61
52
|
|
|
62
53
|
```bash
|
|
63
|
-
npm
|
|
54
|
+
npm install -g @ryuenn3123/agentic-senior-core
|
|
55
|
+
agentic-senior-core init
|
|
64
56
|
```
|
|
65
57
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
If you want a plug-and-play starter instead of answering every question, use a preset:
|
|
58
|
+
Use team defaults with profile packs:
|
|
69
59
|
|
|
70
60
|
```bash
|
|
71
|
-
npx @ryuenn3123/agentic-senior-core init --
|
|
72
|
-
npx @ryuenn3123/agentic-senior-core init --preset backend-api
|
|
73
|
-
npx @ryuenn3123/agentic-senior-core init --preset mobile-react-native
|
|
74
|
-
npx @ryuenn3123/agentic-senior-core init --preset java-enterprise-api
|
|
75
|
-
npx @ryuenn3123/agentic-senior-core init --preset dotnet-enterprise-api
|
|
61
|
+
npx @ryuenn3123/agentic-senior-core init --profile-pack startup
|
|
76
62
|
```
|
|
77
63
|
|
|
78
|
-
|
|
64
|
+
### Method 2: GitHub template and source execution
|
|
79
65
|
|
|
80
|
-
|
|
81
|
-
- `mobile-react-native`, `mobile-flutter`, `observability-platform`
|
|
82
|
-
- `typescript-nestjs-service`, `java-enterprise-api`, `dotnet-enterprise-api`, `php-laravel-api`, `kubernetes-platform`
|
|
66
|
+
Use this method if your team prefers source-based bootstrap or template-first onboarding.
|
|
83
67
|
|
|
84
|
-
|
|
68
|
+
GitHub template:
|
|
69
|
+
- **[Create from template](https://github.com/fatidaprilian/Agentic-Senior-Core/generate)**
|
|
85
70
|
|
|
86
|
-
|
|
71
|
+
GitHub source execution (interactive):
|
|
87
72
|
|
|
88
|
-
|
|
73
|
+
```bash
|
|
74
|
+
npm exec --yes --package=github:fatidaprilian/Agentic-Senior-Core agentic-senior-core init .
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
GitHub bootstrap scripts:
|
|
78
|
+
- Windows: `scripts/init-project.ps1`
|
|
79
|
+
- Linux/macOS: `scripts/init-project.sh`
|
|
89
80
|
|
|
90
81
|
Windows PowerShell:
|
|
91
82
|
|
|
@@ -99,30 +90,37 @@ Linux/macOS Bash:
|
|
|
99
90
|
bash ./scripts/init-project.sh . --profile balanced --stack typescript --blueprint api-nextjs --ci true
|
|
100
91
|
```
|
|
101
92
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
If you want interactive selection, omit `-Profile`, `-Stack`, `-Blueprint`, and `-Ci` on the script command.
|
|
105
|
-
|
|
106
|
-
### Option 3: Interactive Auto-Setup via npm/npx (Post-publish)
|
|
93
|
+
### Preset starters
|
|
107
94
|
|
|
108
|
-
|
|
95
|
+
Use presets when you want faster onboarding with less manual selection.
|
|
109
96
|
|
|
110
97
|
```bash
|
|
111
|
-
npx @ryuenn3123/agentic-senior-core init
|
|
98
|
+
npx @ryuenn3123/agentic-senior-core init --preset frontend-web
|
|
99
|
+
npx @ryuenn3123/agentic-senior-core init --preset backend-api
|
|
100
|
+
npx @ryuenn3123/agentic-senior-core init --preset mobile-react-native
|
|
101
|
+
npx @ryuenn3123/agentic-senior-core init --preset java-enterprise-api
|
|
102
|
+
npx @ryuenn3123/agentic-senior-core init --preset dotnet-enterprise-api
|
|
112
103
|
```
|
|
113
104
|
|
|
114
|
-
|
|
105
|
+
Expanded preset catalog:
|
|
106
|
+
|
|
107
|
+
- `frontend-web`, `backend-api`, `fullstack-product`, `platform-governance`
|
|
108
|
+
- `mobile-react-native`, `mobile-flutter`, `observability-platform`
|
|
109
|
+
- `typescript-nestjs-service`, `java-enterprise-api`, `dotnet-enterprise-api`, `php-laravel-api`, `kubernetes-platform`
|
|
110
|
+
|
|
111
|
+
### Newbie mode
|
|
112
|
+
|
|
113
|
+
If you are new to stacks, blueprints, and guardrails, run:
|
|
115
114
|
|
|
116
115
|
```bash
|
|
117
|
-
npx @ryuenn3123/agentic-senior-core init --
|
|
116
|
+
npx @ryuenn3123/agentic-senior-core init --newbie
|
|
118
117
|
```
|
|
119
118
|
|
|
120
|
-
|
|
119
|
+
### Important behavior
|
|
121
120
|
|
|
122
|
-
Important behavior:
|
|
123
121
|
- `init` does not copy repository workflows from this project into your target repository.
|
|
124
|
-
- MCP server registration and trust/start are
|
|
125
|
-
-
|
|
122
|
+
- MCP server registration and trust/start are manual in IDE settings.
|
|
123
|
+
- MCP workspace scaffold is opt-in via `--mcp-template` and creates `.vscode/mcp.json`.
|
|
126
124
|
|
|
127
125
|
### MCP Setup in VS Code (No File Picker)
|
|
128
126
|
|
|
@@ -139,10 +137,22 @@ npx @ryuenn3123/agentic-senior-core init --mcp-template
|
|
|
139
137
|
4. The generated server command is `npx -y @ryuenn3123/agentic-senior-core mcp`.
|
|
140
138
|
5. Open Chat Customizations > MCP Servers, then trust/start the server.
|
|
141
139
|
|
|
142
|
-
If
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
140
|
+
If logs repeatedly show `Waiting for server to respond to initialize request`, upgrade to the latest package version and regenerate the workspace config with `--mcp-template`.
|
|
141
|
+
|
|
142
|
+
### CLI Command Reference
|
|
143
|
+
|
|
144
|
+
All available commands:
|
|
145
|
+
|
|
146
|
+
| Command | Purpose | Example |
|
|
147
|
+
|---------|---------|---------|
|
|
148
|
+
| `launch` | Numbered onboarding launcher | `agentic-senior-core launch` |
|
|
149
|
+
| `init` | Initialize governance in a project | `agentic-senior-core init . --profile balanced` |
|
|
150
|
+
| `upgrade` | Upgrade existing governance safely | `agentic-senior-core upgrade . --dry-run` |
|
|
151
|
+
| `optimize` | Manage token optimization profile | `agentic-senior-core optimize . --show` |
|
|
152
|
+
| `mcp` | Start local MCP stdio server runtime | `agentic-senior-core mcp` |
|
|
153
|
+
| `rollback` | Roll back from backup snapshot | `agentic-senior-core rollback .` |
|
|
154
|
+
| `skill` | Select domain skill pack by tier | `agentic-senior-core skill frontend --tier advance` |
|
|
155
|
+
| `--version` | Print CLI version | `agentic-senior-core --version` |
|
|
146
156
|
|
|
147
157
|
### Skill Selector
|
|
148
158
|
|
|
@@ -355,6 +365,19 @@ npm run report:quality-trend
|
|
|
355
365
|
npm run report:governance-weekly
|
|
356
366
|
```
|
|
357
367
|
|
|
368
|
+
## Release and npm Publish Flow
|
|
369
|
+
|
|
370
|
+
This repository publishes to npm automatically through GitHub Actions on every push to `main`.
|
|
371
|
+
|
|
372
|
+
Release checklist:
|
|
373
|
+
1. Bump `package.json` version.
|
|
374
|
+
2. Add matching release notes in `CHANGELOG.md`.
|
|
375
|
+
3. Push to `main`.
|
|
376
|
+
|
|
377
|
+
Important notes:
|
|
378
|
+
- If the npm version already exists, publish will fail.
|
|
379
|
+
- Publish requires valid `NPM_TOKEN` in repository secrets.
|
|
380
|
+
|
|
358
381
|
---
|
|
359
382
|
|
|
360
383
|
## Roadmap
|
|
@@ -380,7 +403,7 @@ npm run report:governance-weekly
|
|
|
380
403
|
|
|
381
404
|
### Current Forward Plan
|
|
382
405
|
- V2.0: Skill marketplace trust tiers, transactional installs, rollback safety, and launch-menu onboarding.
|
|
383
|
-
- V2.5: Cross-model benchmark harness
|
|
406
|
+
- 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).
|
|
384
407
|
- V3.0: Enterprise governance cloud, policy drift detection, and org-level override registry.
|
|
385
408
|
|
|
386
409
|
Detailed timeline and success metrics: [docs/roadmap.md](docs/roadmap.md)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryuenn3123/agentic-senior-core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Force your AI Agent to code like a Staff Engineer, not a Junior.",
|
|
6
6
|
"bin": {
|
|
@@ -53,6 +53,6 @@
|
|
|
53
53
|
"report:quality-trend": "node ./scripts/quality-trend-report.mjs",
|
|
54
54
|
"report:governance-weekly": "node ./scripts/governance-weekly-report.mjs",
|
|
55
55
|
"validate": "node ./scripts/validate.mjs",
|
|
56
|
-
"test": "node --test ./tests/cli-smoke.test.mjs ./tests/llm-judge.test.mjs ./tests/enterprise-ops.test.mjs ./tests/skill-tier-gate.test.mjs"
|
|
56
|
+
"test": "node --test ./tests/cli-smoke.test.mjs ./tests/mcp-server.test.mjs ./tests/llm-judge.test.mjs ./tests/enterprise-ops.test.mjs ./tests/skill-tier-gate.test.mjs"
|
|
57
57
|
}
|
|
58
58
|
}
|
package/scripts/mcp-server.mjs
CHANGED
|
@@ -67,6 +67,28 @@ const TOOL_DEFINITIONS = [
|
|
|
67
67
|
|
|
68
68
|
let incomingBuffer = Buffer.alloc(0);
|
|
69
69
|
|
|
70
|
+
function findHeaderTerminator(buffer) {
|
|
71
|
+
const crlfHeaderEndIndex = buffer.indexOf('\r\n\r\n');
|
|
72
|
+
if (crlfHeaderEndIndex !== -1) {
|
|
73
|
+
return {
|
|
74
|
+
headerEndIndex: crlfHeaderEndIndex,
|
|
75
|
+
delimiterLength: 4,
|
|
76
|
+
lineSeparator: '\r\n',
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const lfHeaderEndIndex = buffer.indexOf('\n\n');
|
|
81
|
+
if (lfHeaderEndIndex !== -1) {
|
|
82
|
+
return {
|
|
83
|
+
headerEndIndex: lfHeaderEndIndex,
|
|
84
|
+
delimiterLength: 2,
|
|
85
|
+
lineSeparator: '\n',
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
|
|
70
92
|
function writeMessage(payload) {
|
|
71
93
|
const serializedPayload = JSON.stringify(payload);
|
|
72
94
|
const payloadLength = Buffer.byteLength(serializedPayload, 'utf8');
|
|
@@ -270,13 +292,15 @@ async function handleRequest(requestMessage) {
|
|
|
270
292
|
}
|
|
271
293
|
|
|
272
294
|
function readNextFramedMessage() {
|
|
273
|
-
const
|
|
274
|
-
if (
|
|
295
|
+
const headerTerminator = findHeaderTerminator(incomingBuffer);
|
|
296
|
+
if (!headerTerminator) {
|
|
275
297
|
return null;
|
|
276
298
|
}
|
|
277
299
|
|
|
300
|
+
const { headerEndIndex, delimiterLength, lineSeparator } = headerTerminator;
|
|
301
|
+
|
|
278
302
|
const rawHeader = incomingBuffer.slice(0, headerEndIndex).toString('utf8');
|
|
279
|
-
const headerLines = rawHeader.split(
|
|
303
|
+
const headerLines = rawHeader.split(lineSeparator);
|
|
280
304
|
let contentLength = null;
|
|
281
305
|
|
|
282
306
|
for (const headerLine of headerLines) {
|
|
@@ -299,7 +323,7 @@ function readNextFramedMessage() {
|
|
|
299
323
|
return null;
|
|
300
324
|
}
|
|
301
325
|
|
|
302
|
-
const bodyStartIndex = headerEndIndex +
|
|
326
|
+
const bodyStartIndex = headerEndIndex + delimiterLength;
|
|
303
327
|
const frameEndIndex = bodyStartIndex + contentLength;
|
|
304
328
|
|
|
305
329
|
if (incomingBuffer.length < frameEndIndex) {
|
package/scripts/validate.mjs
CHANGED
|
@@ -182,6 +182,7 @@ async function validateRequiredFiles() {
|
|
|
182
182
|
'.github/workflows/benchmark-intelligence.yml',
|
|
183
183
|
'.github/workflows/governance-weekly-report.yml',
|
|
184
184
|
'tests/cli-smoke.test.mjs',
|
|
185
|
+
'tests/mcp-server.test.mjs',
|
|
185
186
|
'tests/llm-judge.test.mjs',
|
|
186
187
|
'tests/enterprise-ops.test.mjs',
|
|
187
188
|
'LICENSE',
|