Skip to content

Commit bdb301a

Browse files
authored
Merge pull request #34 from itsflaid/codex/ignore-agent-skills-snapshot
Ignore agent metadata in snapshots
2 parents f05a558 + 13087e7 commit bdb301a

5 files changed

Lines changed: 78 additions & 0 deletions

File tree

docs/for-me-personal/DEBUG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -928,3 +928,37 @@ static route `/index.html`.
928928
Jangan memakai `latest` untuk dependency framework pada repo yang memiliki
929929
target Node eksplisit. Cek engine package yang ter-resolve di lockfile sebelum
930930
menganggap build lokal cukup aman untuk CI.
931+
932+
## 18. Agent Skills Terdeteksi Sebagai Fitur AI Project
933+
934+
**Tanggal:** 2026-06-18
935+
**Status:** Selesai
936+
937+
### Gejala
938+
939+
Snapshot DevMap mendeteksi `.agents/skills` sebagai bagian project dan
940+
menganggap skill development agent sebagai sistem AI terintegrasi. Padahal
941+
folder tersebut hanya dipakai untuk instruksi agent saat mengembangkan DevMap.
942+
943+
### Akar Masalah
944+
945+
Scanner belum mengabaikan folder metadata agent development. Akibatnya file
946+
seperti `.agents/skills/*/SKILL.md` ikut terbaca oleh analyzer fitur dan service.
947+
948+
### Solusi
949+
950+
- Tambahkan `.agent` dan `.agents` ke ignore directory scanner.
951+
- Tambahkan test scanner untuk memastikan `.agents/skills` tidak masuk hasil
952+
scan.
953+
954+
### Verifikasi
955+
956+
```powershell
957+
pnpm --filter devmap exec tsx --test test/analyzers.test.ts
958+
```
959+
960+
### Pelajaran
961+
962+
Folder dotfile yang dipakai alat development dapat berisi kata kunci AI, auth,
963+
atau service. Scanner harus membedakan metadata development dari source project
964+
agar snapshot tetap merepresentasikan aplikasi yang dianalisis.

docs/for-me-personal/PROGRESS.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -903,3 +903,17 @@ node packages\cli\dist\index.js doctor
903903
4. Tambahkan abstraction AI client dan model routing.
904904
5. Tambahkan Context Builder dengan batas 3–5 file.
905905
6. Tambahkan prompt template untuk `analyze` dan `ask`.
906+
907+
## Snapshot Scanner Ignore: Agent Development Metadata
908+
909+
**Tanggal:** 2026-06-18
910+
911+
DevMap sekarang mengabaikan folder `.agent/` dan `.agents/` saat scan project.
912+
Folder tersebut dipakai untuk metadata/skill AI agent saat development dan
913+
tidak boleh muncul sebagai fitur produk di snapshot.
914+
915+
Verifikasi:
916+
917+
```powershell
918+
pnpm --filter devmap exec tsx --test test/analyzers.test.ts
919+
```

docs/for-me-personal/TEST.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,12 @@ Analyzer dan snapshot:
387387
pnpm --filter devmap exec tsx --test test/analyzers.test.ts
388388
```
389389

390+
Expected tambahan:
391+
392+
- `.agent/` dan `.agents/` tidak masuk hasil scan;
393+
- `.agents/skills/*/SKILL.md` tidak terdeteksi sebagai fitur AI project;
394+
- snapshot tetap hanya merepresentasikan source project yang dianalisis.
395+
390396
AI client:
391397

392398
```powershell

packages/cli/src/analyzers/filterEngine.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
const IGNORED_DIRECTORIES = new Set([
22
".git",
33
".devmap",
4+
".agent",
5+
".agents",
46
".next",
57
".turbo",
68
".vercel",

packages/cli/test/analyzers.test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,28 @@ test("scanner ignores generated and secret paths", async () => {
3333
assert.ok(!paths.some((path) => path.startsWith(".env")));
3434
});
3535

36+
test("scanner ignores agent development metadata", async () => {
37+
const projectRoot = await mkdtemp(join(tmpdir(), "devmap-agent-metadata-test-"));
38+
39+
try {
40+
await writeFile(join(projectRoot, "package.json"), JSON.stringify({ name: "agent-metadata-test" }));
41+
await mkdir(join(projectRoot, "src"), { recursive: true });
42+
await writeFile(join(projectRoot, "src", "index.ts"), "export const app = true;\n");
43+
await mkdir(join(projectRoot, ".agents", "skills", "ai-helper"), { recursive: true });
44+
await writeFile(
45+
join(projectRoot, ".agents", "skills", "ai-helper", "SKILL.md"),
46+
"# AI Helper\n\nThis development-only skill mentions OpenAI, Groq, and agents.\n"
47+
);
48+
49+
const paths = (await scanFiles(projectRoot)).map((file) => file.path);
50+
51+
assert.ok(paths.includes("src/index.ts"));
52+
assert.ok(!paths.some((path) => path.startsWith(".agents/")));
53+
} finally {
54+
await rm(projectRoot, { recursive: true, force: true });
55+
}
56+
});
57+
3658
test("scanner ignores package manager lockfiles", () => {
3759
for (const lockfile of [
3860
"package-lock.json",

0 commit comments

Comments
 (0)