@ivannikov-pro/ai-context-surgeon 1.0.0 → 1.0.2
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/README.md +2 -1
- package/bin/cli.js +15 -13
- package/package.json +1 -1
- package/templates/AGENTS.md.template +4 -0
- package/tools/check-fnh-freshness.sh +5 -0
- package/tools/scan-fnh.sh +1 -1
package/README.md
CHANGED
|
@@ -271,7 +271,8 @@ npx @ivannikov-pro/ai-context-surgeon@latest # → interactive menu
|
|
|
271
271
|
|
|
272
272
|
Or use pre-built agent workflows (defined in `.agents/workflows/`):
|
|
273
273
|
- `/analyze-repo` — Quick analysis using Scout + tools
|
|
274
|
-
- `/
|
|
274
|
+
- `/apply-surgeon` — Step-by-step execution pipeline to overhaul the current codebase
|
|
275
|
+
- `/full-pipeline` — Complete 5-phase cascade guide
|
|
275
276
|
- `/self-check` — Validate ai-context-surgeon's own integrity
|
|
276
277
|
|
|
277
278
|
---
|
package/bin/cli.js
CHANGED
|
@@ -202,38 +202,40 @@ program
|
|
|
202
202
|
// ─── Tier 3: Tool Execution ────────────────────────────────────────
|
|
203
203
|
|
|
204
204
|
program
|
|
205
|
-
.command("radar")
|
|
205
|
+
.command("radar [targetDir]")
|
|
206
206
|
.description("Run Radar Scan — generate semantic FNH map of the repository")
|
|
207
|
-
.option("-d, --depth <level>", "Limit scan depth (e.g. 1, 2, all)")
|
|
207
|
+
.option("-d, --depth <level>", "Limit scan depth (e.g. 1, 2, all)", "all")
|
|
208
208
|
.option("--no-legend", "Output pure text map without format legend")
|
|
209
|
-
.action(async (options) => {
|
|
210
|
-
const
|
|
209
|
+
.action(async (targetDir, options) => {
|
|
210
|
+
const dir = targetDir || ".";
|
|
211
|
+
const args = [dir];
|
|
211
212
|
if (options.depth) args.push(`--depth=${options.depth}`);
|
|
212
213
|
if (!options.legend) args.push("--no-legend");
|
|
213
214
|
await runScript("tools/scan-fnh.sh", args);
|
|
214
215
|
});
|
|
215
216
|
|
|
216
217
|
program
|
|
217
|
-
.command("godfiles")
|
|
218
|
+
.command("godfiles [targetDir]")
|
|
218
219
|
.description("Find excessively large files (detect-god-files.sh)")
|
|
219
|
-
.action(async () => await runScript("tools/detect-god-files.sh", ["."]));
|
|
220
|
+
.action(async (targetDir) => await runScript("tools/detect-god-files.sh", [targetDir || "."]));
|
|
220
221
|
|
|
221
222
|
program
|
|
222
|
-
.command("circular")
|
|
223
|
+
.command("circular [targetDir]")
|
|
223
224
|
.description("Detect circular dependencies")
|
|
224
|
-
.action(async () => await runScript("tools/detect-circular-deps.sh", ["."]));
|
|
225
|
+
.action(async (targetDir) => await runScript("tools/detect-circular-deps.sh", [targetDir || "."]));
|
|
225
226
|
|
|
226
227
|
program
|
|
227
|
-
.command("sourcemaps")
|
|
228
|
+
.command("sourcemaps [targetDir]")
|
|
228
229
|
.description("Generate AI-friendly source maps")
|
|
229
|
-
.action(async () => await runScript("tools/generate-source-map.sh", ["."]));
|
|
230
|
+
.action(async (targetDir) => await runScript("tools/generate-source-map.sh", [targetDir || "."]));
|
|
230
231
|
|
|
231
232
|
program
|
|
232
|
-
.command("context-weight")
|
|
233
|
+
.command("context-weight [targetDir]")
|
|
233
234
|
.description("Identify files with high Context Weight (LOC + import penalties)")
|
|
234
235
|
.option("--internal-scope <scopes>", "Treat these scopes as local imports (comma-separated)")
|
|
235
|
-
.action(async (options) => {
|
|
236
|
-
const
|
|
236
|
+
.action(async (targetDir, options) => {
|
|
237
|
+
const dir = targetDir || ".";
|
|
238
|
+
const args = [dir];
|
|
237
239
|
if (options.internalScope) args.push(`--internal-scope=${options.internalScope}`);
|
|
238
240
|
await runScript("tools/validate-context-weight.sh", args);
|
|
239
241
|
});
|
package/package.json
CHANGED
|
@@ -103,6 +103,10 @@ MANDATORY RULE: Agents MUST respect and maintain the `.antigravityignore` file t
|
|
|
103
103
|
This repository is optimized with [ai-context-surgeon](https://github.com/ivannikov-pro/ai-context-surgeon).
|
|
104
104
|
All tools, roles, strategies, and prompts are available on-demand — no file install needed.
|
|
105
105
|
|
|
106
|
+
**MANDATORY TOOL DIRECTIVES FOR AI AGENTS:**
|
|
107
|
+
1. **First step:** ALWAYS run `npx -y @ivannikov-pro/ai-context-surgeon@latest radar` to get a semantic map of the repo before any action.
|
|
108
|
+
2. **Before architectural changes:** Run `npx @ivannikov-pro/ai-context-surgeon@latest godfiles` and `circular` checks.
|
|
109
|
+
|
|
106
110
|
### Quick Reference for AI Agents
|
|
107
111
|
|
|
108
112
|
```bash
|
|
@@ -8,6 +8,11 @@ set -euo pipefail
|
|
|
8
8
|
|
|
9
9
|
source "$(dirname "$0")/shared/config.sh"
|
|
10
10
|
|
|
11
|
+
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
12
|
+
echo "⚠️ Warning: Not a Git repository. FNH freshness checks require Git history. Skipping."
|
|
13
|
+
exit 0
|
|
14
|
+
fi
|
|
15
|
+
|
|
11
16
|
BASE_REF="${1:-HEAD~1}"
|
|
12
17
|
WARN_COUNT=0
|
|
13
18
|
CHECKED=0
|
package/tools/scan-fnh.sh
CHANGED
|
@@ -98,7 +98,7 @@ else
|
|
|
98
98
|
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
99
99
|
FILES=$(git ls-files | grep -E "$EXT_REGEX" | grep -vE '(package-lock\.json|yarn\.lock|pnpm-lock\.yaml)' || true)
|
|
100
100
|
else
|
|
101
|
-
FILES=$(find . -type
|
|
101
|
+
FILES=$(find . -type d \( -name node_modules -o -name dist -o -name .git -o -name coverage \) -prune -o -type f -print 2>/dev/null | sed 's|^\./||' | grep -E "$EXT_REGEX" | grep -vE '(package-lock\.json|yarn\.lock|pnpm-lock\.yaml)' || true)
|
|
102
102
|
fi
|
|
103
103
|
|
|
104
104
|
if [[ "$DEPTH" != "all" && "$DEPTH" =~ ^[0-9]+$ ]]; then
|