@ryuenn3123/agentic-senior-core 5.8.2 → 5.8.4
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.devin-plugin/plugin.json +1 -1
- package/.github/plugin/plugin.json +1 -1
- package/README.md +8 -19
- package/gemini-extension.json +1 -1
- package/lib/cli/commands/global.mjs +85 -4
- package/package.json +1 -1
- package/plugin.yaml +1 -1
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
|
|
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
|
-
|
|
238
|
+
This installs:
|
|
239
|
+
- **Plugin bundle** (skills: `/asc-review`, `/asc-audit`, `/asc-refactor`, `/asc-reference`, `/asc-debt`, etc.) → `~/.gemini/antigravity-ide/plugins/agentic-senior-core/`
|
|
240
|
+
- **Rules** → `~/.gemini/GEMINI.md` (appended if you already have content; ASC section is replaced on re-runs)
|
|
239
241
|
|
|
240
|
-
|
|
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/` or `~/.gemini/config/skills/` (v5.8.3 or earlier), the old paths are cleaned up automatically.
|
|
254
243
|
|
|
255
|
-
|
|
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
|
-
>
|
|
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/
|
|
292
|
+
| Google Antigravity IDE | `~/.gemini/antigravity-ide/plugins/agentic-senior-core/` + `~/.gemini/GEMINI.md` | Plugin bundle (rules + skills) + global rules |
|
|
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` |
|
package/gemini-extension.json
CHANGED
|
@@ -20,13 +20,21 @@ function vscodeUserPromptsDirectory() {
|
|
|
20
20
|
return path.join(HOME, '.config', 'Code', 'User', 'prompts');
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
const OLD_PATHS = [
|
|
24
|
+
path.join(HOME, '.gemini', 'config', 'plugins', 'agentic-senior-core'),
|
|
25
|
+
path.join(HOME, '.gemini', 'config', 'skills'),
|
|
26
|
+
];
|
|
27
|
+
|
|
23
28
|
const GLOBAL_TARGETS = {
|
|
24
29
|
antigravity: {
|
|
25
30
|
label: 'Google Antigravity IDE',
|
|
26
|
-
kind: '
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
kind: 'antigravity-ide',
|
|
32
|
+
pluginSourcePath: '.agents/plugins/agentic-senior-core',
|
|
33
|
+
rulesSourcePath: '.agents/rules/agentic-senior-core.md',
|
|
34
|
+
pluginTargetPath: () => path.join(HOME, '.gemini', 'antigravity-ide', 'plugins', 'agentic-senior-core'),
|
|
35
|
+
rulesTargetPath: () => path.join(HOME, '.gemini', 'GEMINI.md'),
|
|
36
|
+
targetPath: () => path.join(HOME, '.gemini', 'antigravity-ide', 'plugins', 'agentic-senior-core'),
|
|
37
|
+
note: 'Plugin bundle (rules + skills) in ~/.gemini/antigravity-ide/plugins/, rules also in ~/.gemini/GEMINI.md.',
|
|
30
38
|
},
|
|
31
39
|
cline: {
|
|
32
40
|
label: 'Cline',
|
|
@@ -97,6 +105,11 @@ async function pathExists(filePath) {
|
|
|
97
105
|
|
|
98
106
|
async function installGlobalTarget(targetKey) {
|
|
99
107
|
const target = GLOBAL_TARGETS[targetKey];
|
|
108
|
+
|
|
109
|
+
if (target.kind === 'antigravity-ide') {
|
|
110
|
+
return await installAntigravityIde(target);
|
|
111
|
+
}
|
|
112
|
+
|
|
100
113
|
const sourcePath = path.join(REPOSITORY_ROOT, target.sourcePath);
|
|
101
114
|
const targetPath = target.targetPath();
|
|
102
115
|
|
|
@@ -142,6 +155,74 @@ async function installGlobalTarget(targetKey) {
|
|
|
142
155
|
return true;
|
|
143
156
|
}
|
|
144
157
|
|
|
158
|
+
async function installAntigravityIde(target) {
|
|
159
|
+
const pluginSource = path.join(REPOSITORY_ROOT, target.pluginSourcePath);
|
|
160
|
+
const rulesSource = path.join(REPOSITORY_ROOT, target.rulesSourcePath);
|
|
161
|
+
const pluginTargetPath = target.pluginTargetPath();
|
|
162
|
+
const rulesTargetPath = target.rulesTargetPath();
|
|
163
|
+
|
|
164
|
+
if (!(await pathExists(pluginSource))) {
|
|
165
|
+
console.error(` ${target.label}: plugin source not found (${pluginSource}) ... FAIL`);
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
if (!(await pathExists(rulesSource))) {
|
|
169
|
+
console.error(` ${target.label}: rules source not found (${rulesSource}) ... FAIL`);
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Copy plugin bundle (plugin.json + skills/) to ~/.gemini/antigravity-ide/plugins/agentic-senior-core/
|
|
174
|
+
await fs.mkdir(path.dirname(pluginTargetPath), { recursive: true });
|
|
175
|
+
await fs.cp(pluginSource, pluginTargetPath, { recursive: true, force: true });
|
|
176
|
+
console.log(` ${target.label}: plugin -> ${pluginTargetPath} ... OK`);
|
|
177
|
+
|
|
178
|
+
// Append rules to ~/.gemini/GEMINI.md (guarded: replace ASC section if present, append if not)
|
|
179
|
+
const rulesContent = await fs.readFile(rulesSource, 'utf8');
|
|
180
|
+
// Strip frontmatter (trigger: always_on) — GEMINI.md is always loaded, no frontmatter needed
|
|
181
|
+
const rulesBody = rulesContent.replace(/^---[\s\S]*?---\n*/, '');
|
|
182
|
+
// rulesBody already starts with '# Agentic Senior Core' which matches ASC_MARKER
|
|
183
|
+
const ascSection = `\n\n${rulesBody.trim()}\n`;
|
|
184
|
+
|
|
185
|
+
await fs.mkdir(path.dirname(rulesTargetPath), { recursive: true });
|
|
186
|
+
|
|
187
|
+
if (await pathExists(rulesTargetPath)) {
|
|
188
|
+
const existingContent = await fs.readFile(rulesTargetPath, 'utf8');
|
|
189
|
+
if (existingContent.includes(ASC_MARKER)) {
|
|
190
|
+
const markerIndex = existingContent.indexOf(ASC_MARKER);
|
|
191
|
+
const beforeAsc = existingContent.substring(0, markerIndex).trimEnd();
|
|
192
|
+
await fs.writeFile(rulesTargetPath, beforeAsc + ascSection);
|
|
193
|
+
console.log(` ${target.label}: rules updated in ${rulesTargetPath} ... OK`);
|
|
194
|
+
} else {
|
|
195
|
+
await fs.writeFile(rulesTargetPath, existingContent.trimEnd() + ascSection);
|
|
196
|
+
console.log(` ${target.label}: rules appended to ${rulesTargetPath} ... OK`);
|
|
197
|
+
}
|
|
198
|
+
} else {
|
|
199
|
+
await fs.writeFile(rulesTargetPath, ascSection.trimStart());
|
|
200
|
+
console.log(` ${target.label}: rules -> ${rulesTargetPath} ... OK`);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Clean up old paths from previous versions
|
|
204
|
+
for (const oldPath of OLD_PATHS) {
|
|
205
|
+
if (await pathExists(oldPath)) {
|
|
206
|
+
// For config/skills/, only remove ASC skill folders, not other tools' skills
|
|
207
|
+
if (oldPath.endsWith('skills')) {
|
|
208
|
+
const ASC_SKILL_NAMES = ['asc', 'asc-adapter', 'asc-add-feature', 'asc-audit', 'asc-debt', 'asc-new-project', 'asc-refactor', 'asc-reference', 'asc-review'];
|
|
209
|
+
for (const skillName of ASC_SKILL_NAMES) {
|
|
210
|
+
const skillPath = path.join(oldPath, skillName);
|
|
211
|
+
if (await pathExists(skillPath)) {
|
|
212
|
+
await fs.rm(skillPath, { recursive: true, force: true });
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
console.log(` ${target.label}: cleaned up old skills from ${oldPath}`);
|
|
216
|
+
} else {
|
|
217
|
+
await fs.rm(oldPath, { recursive: true, force: true });
|
|
218
|
+
console.log(` ${target.label}: cleaned up old path ${oldPath}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
|
|
145
226
|
function printGlobalUsage() {
|
|
146
227
|
console.log('Agentic Senior Core -- Global Install\n');
|
|
147
228
|
console.log('Installs rules to user-level locations. Applies to ALL projects, zero project files.\n');
|
package/package.json
CHANGED
package/plugin.yaml
CHANGED