@ryuenn3123/agentic-senior-core 5.8.2 → 5.8.3

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,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
- "version": "5.8.2",
3
+ "version": "5.8.3",
4
4
  "displayName": "Agentic Senior Core",
5
5
  "description": "Universal AI coding rules. Write code like a staff engineer.",
6
6
  "author": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
- "version": "5.8.2",
3
+ "version": "5.8.3",
4
4
  "description": "Universal AI coding rules. Write code like a staff engineer.",
5
5
  "author": {
6
6
  "name": "fatidaprilian",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
- "version": "5.8.2",
3
+ "version": "5.8.3",
4
4
  "description": "Universal AI coding rules. Write code like a staff engineer.",
5
5
  "author": {
6
6
  "name": "fatidaprilian",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
3
  "description": "Universal AI coding rules. Write code like a staff engineer.",
4
- "version": "5.8.2",
4
+ "version": "5.8.3",
5
5
  "author": {
6
6
  "name": "fatidaprilian",
7
7
  "url": "https://github.com/fatidaprilian"
package/README.md CHANGED
@@ -227,7 +227,7 @@ cp "$(npm root -g)/@ryuenn3123/agentic-senior-core/.agents/rules/agentic-senior-
227
227
 
228
228
  Antigravity IDE reads it automatically with `trigger: always_on`.
229
229
 
230
- **Option B -- global plugin (all projects):**
230
+ **Option B -- global install (all projects):**
231
231
 
232
232
  One command (works on all platforms):
233
233
 
@@ -235,26 +235,15 @@ One command (works on all platforms):
235
235
  asc global --antigravity
236
236
  ```
237
237
 
238
- Or copy the plugin bundle manually to Antigravity's global plugin directory:
238
+ This installs:
239
+ - **Skills** (`/asc-review`, `/asc-audit`, `/asc-refactor`, `/asc-reference`, `/asc-debt`, etc.) → `~/.gemini/config/skills/` (one folder per skill)
240
+ - **Rules** → `~/.gemini/GEMINI.md` (appended if you already have content; ASC section is replaced on re-runs)
239
241
 
240
- ```powershell
241
- # Windows (PowerShell)
242
- Copy-Item -Recurse -Force "$env:APPDATA\npm\node_modules\@ryuenn3123\agentic-senior-core\.agents\plugins\agentic-senior-core" "$env:USERPROFILE\.gemini\config\plugins\agentic-senior-core"
243
- ```
244
-
245
- ```cmd
246
- :: Windows (cmd.exe)
247
- xcopy /E /I /Y "%APPDATA%\npm\node_modules\@ryuenn3123\agentic-senior-core\.agents\plugins\agentic-senior-core" "%USERPROFILE%\.gemini\config\plugins\agentic-senior-core"
248
- ```
249
-
250
- ```bash
251
- # macOS / Linux
252
- cp -r "$(npm root -g)/@ryuenn3123/agentic-senior-core/.agents/plugins/agentic-senior-core" ~/.gemini/config/plugins/
253
- ```
242
+ If you previously installed to `~/.gemini/config/plugins/agentic-senior-core/` (v5.8.2 or earlier), the old path is cleaned up automatically.
254
243
 
255
- The plugin bundle includes rules, skills (`/asc-review`, `/asc-audit`, `/asc-refactor`, `/asc-reference`, `/asc-debt`), and `plugin.json`.
244
+ > Note: `npm update -g` refreshes the npm package only. The global copy does not auto-update -- re-run `asc global --antigravity` after each update.
256
245
 
257
- > Note: `npm update -g` refreshes the npm package only. The global plugin copy does not auto-update -- re-run `asc global --antigravity` after each update.
246
+ > **WSL / dual-environment:** `asc global --antigravity` writes to the HOME directory of the current environment. If you use both Windows native and WSL, run it separately in each terminal. The same applies to `agy plugin install` for Antigravity CLI.
258
247
 
259
248
  </details>
260
249
 
@@ -300,7 +289,7 @@ asc global --all
300
289
 
301
290
  | Tool | Global location | Notes |
302
291
  |------|----------------|-------|
303
- | Google Antigravity IDE | `~/.gemini/config/plugins/agentic-senior-core/` | Full plugin bundle: rules + skills, always-on |
292
+ | Google Antigravity IDE | `~/.gemini/config/skills/` + `~/.gemini/GEMINI.md` | Skills + rules, always-on |
304
293
  | Cline | `~/Documents/Cline/Rules/` | Toggleable in the Cline rules panel |
305
294
  | Kilo Code | `~/.kilocode/rules/` | Or point `instructions:` in `~/.config/kilo/kilo.jsonc` at the npm package path — that variant auto-updates |
306
295
  | Kiro | `~/.kiro/steering/` | Some builds have global-steering loading bugs; fall back to `asc adapter --kiro` |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
- "version": "5.8.2",
3
+ "version": "5.8.3",
4
4
  "description": "Universal AI coding rules. Write code like a staff engineer.",
5
5
  "author": "fatidaprilian",
6
6
  "license": "MIT",
@@ -20,13 +20,18 @@ function vscodeUserPromptsDirectory() {
20
20
  return path.join(HOME, '.config', 'Code', 'User', 'prompts');
21
21
  }
22
22
 
23
+ const OLD_ANTIGRAVITY_PLUGIN_PATH = path.join(HOME, '.gemini', 'config', 'plugins', 'agentic-senior-core');
24
+
23
25
  const GLOBAL_TARGETS = {
24
26
  antigravity: {
25
27
  label: 'Google Antigravity IDE',
26
- kind: 'directory',
27
- sourcePath: '.agents/plugins/agentic-senior-core',
28
- targetPath: () => path.join(HOME, '.gemini', 'config', 'plugins', 'agentic-senior-core'),
29
- note: 'Full plugin bundle (rules + skills), always-on in every project.',
28
+ kind: 'antigravity-ide',
29
+ skillsSourcePath: '.agents/plugins/agentic-senior-core/skills',
30
+ rulesSourcePath: '.agents/rules/agentic-senior-core.md',
31
+ skillsTargetDir: () => path.join(HOME, '.gemini', 'config', 'skills'),
32
+ rulesTargetPath: () => path.join(HOME, '.gemini', 'GEMINI.md'),
33
+ targetPath: () => `${path.join(HOME, '.gemini', 'config', 'skills')}${path.sep} + GEMINI.md`,
34
+ note: 'Skills in ~/.gemini/config/skills/, rules in ~/.gemini/GEMINI.md. Always-on in every project.',
30
35
  },
31
36
  cline: {
32
37
  label: 'Cline',
@@ -97,6 +102,11 @@ async function pathExists(filePath) {
97
102
 
98
103
  async function installGlobalTarget(targetKey) {
99
104
  const target = GLOBAL_TARGETS[targetKey];
105
+
106
+ if (target.kind === 'antigravity-ide') {
107
+ return await installAntigravityIde(target);
108
+ }
109
+
100
110
  const sourcePath = path.join(REPOSITORY_ROOT, target.sourcePath);
101
111
  const targetPath = target.targetPath();
102
112
 
@@ -142,6 +152,69 @@ async function installGlobalTarget(targetKey) {
142
152
  return true;
143
153
  }
144
154
 
155
+ async function installAntigravityIde(target) {
156
+ const skillsSource = path.join(REPOSITORY_ROOT, target.skillsSourcePath);
157
+ const rulesSource = path.join(REPOSITORY_ROOT, target.rulesSourcePath);
158
+ const skillsTargetDir = target.skillsTargetDir();
159
+ const rulesTargetPath = target.rulesTargetPath();
160
+
161
+ if (!(await pathExists(skillsSource))) {
162
+ console.error(` ${target.label}: skills source not found (${skillsSource}) ... FAIL`);
163
+ return false;
164
+ }
165
+ if (!(await pathExists(rulesSource))) {
166
+ console.error(` ${target.label}: rules source not found (${rulesSource}) ... FAIL`);
167
+ return false;
168
+ }
169
+
170
+ // Copy each skill folder flat into ~/.gemini/config/skills/<skill-name>/
171
+ const skillFolders = await fs.readdir(skillsSource, { withFileTypes: true });
172
+ const skillNames = skillFolders.filter(entry => entry.isDirectory()).map(entry => entry.name);
173
+
174
+ await fs.mkdir(skillsTargetDir, { recursive: true });
175
+ for (const skillName of skillNames) {
176
+ const source = path.join(skillsSource, skillName);
177
+ const destination = path.join(skillsTargetDir, skillName);
178
+ await fs.cp(source, destination, { recursive: true, force: true });
179
+ }
180
+ console.log(` ${target.label}: ${skillNames.length} skills -> ${skillsTargetDir} ... OK`);
181
+
182
+ // Append rules to ~/.gemini/GEMINI.md (guarded: replace ASC section if present, append if not)
183
+ const rulesContent = await fs.readFile(rulesSource, 'utf8');
184
+ // Strip frontmatter (trigger: always_on) — GEMINI.md is always loaded, no frontmatter needed
185
+ const rulesBody = rulesContent.replace(/^---[\s\S]*?---\n*/, '');
186
+ // rulesBody already starts with '# Agentic Senior Core' which matches ASC_MARKER
187
+ const ascSection = `\n\n${rulesBody.trim()}\n`;
188
+
189
+ await fs.mkdir(path.dirname(rulesTargetPath), { recursive: true });
190
+
191
+ if (await pathExists(rulesTargetPath)) {
192
+ const existingContent = await fs.readFile(rulesTargetPath, 'utf8');
193
+ if (existingContent.includes(ASC_MARKER)) {
194
+ // Replace existing ASC section (from marker to end-of-file or next top-level heading)
195
+ const markerIndex = existingContent.indexOf(ASC_MARKER);
196
+ const beforeAsc = existingContent.substring(0, markerIndex).trimEnd();
197
+ await fs.writeFile(rulesTargetPath, beforeAsc + ascSection);
198
+ console.log(` ${target.label}: rules updated in ${rulesTargetPath} ... OK`);
199
+ } else {
200
+ // Append to existing content
201
+ await fs.writeFile(rulesTargetPath, existingContent.trimEnd() + ascSection);
202
+ console.log(` ${target.label}: rules appended to ${rulesTargetPath} ... OK`);
203
+ }
204
+ } else {
205
+ await fs.writeFile(rulesTargetPath, ascSection.trimStart());
206
+ console.log(` ${target.label}: rules -> ${rulesTargetPath} ... OK`);
207
+ }
208
+
209
+ // Clean up old plugin path if it exists
210
+ if (await pathExists(OLD_ANTIGRAVITY_PLUGIN_PATH)) {
211
+ await fs.rm(OLD_ANTIGRAVITY_PLUGIN_PATH, { recursive: true, force: true });
212
+ console.log(` ${target.label}: cleaned up old path ${OLD_ANTIGRAVITY_PLUGIN_PATH}`);
213
+ }
214
+
215
+ return true;
216
+ }
217
+
145
218
  function printGlobalUsage() {
146
219
  console.log('Agentic Senior Core -- Global Install\n');
147
220
  console.log('Installs rules to user-level locations. Applies to ALL projects, zero project files.\n');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuenn3123/agentic-senior-core",
3
- "version": "5.8.2",
3
+ "version": "5.8.3",
4
4
  "type": "module",
5
5
  "description": "Universal AI coding rules. Write code like a staff engineer, not a junior.",
6
6
  "bin": {
package/plugin.yaml CHANGED
@@ -1,5 +1,5 @@
1
1
  name: agentic-senior-core
2
- version: 5.8.2
2
+ version: 5.8.3
3
3
  description: Universal AI coding rules. Write code like a staff engineer.
4
4
  author: fatidaprilian
5
5
  provides_hooks: