agents-md-gen 0.8.0 → 0.9.1
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/CHANGELOG.md +13 -0
- package/README.md +16 -2
- package/package.json +4 -2
- package/src/detect.js +46 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.1
|
|
4
|
+
|
|
5
|
+
- README: the GitHub Action moved to `Peshino2012/homebrew-tap/action`,
|
|
6
|
+
a public repo. The previous `uses:` line pointed at a private repo,
|
|
7
|
+
which other repos cannot use.
|
|
8
|
+
|
|
9
|
+
## 0.9.0
|
|
10
|
+
|
|
11
|
+
- Point `funding`/homepage links at the public npm page (they pointed at
|
|
12
|
+
a private GitHub repo, so anyone clicking them got a 404).
|
|
13
|
+
- Detect Zig projects (`build.zig`, name from `build.zig.zon`).
|
|
14
|
+
- Detect Julia projects (`Project.toml`, `test/runtests.jl`).
|
|
15
|
+
|
|
3
16
|
## 0.8.0
|
|
4
17
|
|
|
5
18
|
- Detect C/C++ projects (CMake/Make, CTest detection).
|
package/README.md
CHANGED
|
@@ -68,6 +68,8 @@ docker run --rm -v "$PWD":/workdir ghcr.io/peshino2012/agents-md-gen
|
|
|
68
68
|
- **C/C++** — CMake, Make, CTest detection
|
|
69
69
|
- **Haskell** — Stack, Cabal
|
|
70
70
|
- **Scala** — sbt
|
|
71
|
+
- **Zig** — `build.zig`/`build.zig.zon`
|
|
72
|
+
- **Julia** — `Project.toml`, Pkg test detection
|
|
71
73
|
- **Monorepos** — Turborepo, Nx, Lerna, Rush, npm/yarn/pnpm workspaces,
|
|
72
74
|
listing each detected sub-package
|
|
73
75
|
- CI (GitHub Actions), license, and top-level project structure
|
|
@@ -77,13 +79,22 @@ docker run --rm -v "$PWD":/workdir ghcr.io/peshino2012/agents-md-gen
|
|
|
77
79
|
Use it directly in CI without installing anything:
|
|
78
80
|
|
|
79
81
|
```yaml
|
|
80
|
-
- uses: Peshino2012/
|
|
82
|
+
- uses: Peshino2012/homebrew-tap/action@main
|
|
81
83
|
with:
|
|
82
84
|
directory: .
|
|
83
85
|
also-claude-md: 'true'
|
|
84
86
|
```
|
|
85
87
|
|
|
86
|
-
|
|
88
|
+
Or fail CI when `AGENTS.md` goes stale:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
- uses: Peshino2012/homebrew-tap/action@main
|
|
92
|
+
with:
|
|
93
|
+
check: 'true'
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Inputs: `directory`, `output`, `also-claude-md`, `force`, `check`, and
|
|
97
|
+
`version` (defaults to `latest`; set it to pin a release).
|
|
87
98
|
|
|
88
99
|
A repo can match more than one of these (e.g. a Python backend next to a
|
|
89
100
|
Node frontend) — each detected stack gets its own section.
|
|
@@ -129,6 +140,8 @@ this package's own repo:
|
|
|
129
140
|
## Structure
|
|
130
141
|
|
|
131
142
|
- `.github/` — GitHub config (CI, templates)
|
|
143
|
+
- `CHANGELOG.md`
|
|
144
|
+
- `Dockerfile`
|
|
132
145
|
- `LICENSE`
|
|
133
146
|
- `README.md`
|
|
134
147
|
- `bin/` — CLI entry points
|
|
@@ -140,6 +153,7 @@ this package's own repo:
|
|
|
140
153
|
|
|
141
154
|
- CI: GitHub Actions (test.yml)
|
|
142
155
|
- License: MIT
|
|
156
|
+
- Docker: Dockerfile
|
|
143
157
|
````
|
|
144
158
|
|
|
145
159
|
## Why
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agents-md-gen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Generate a solid AGENTS.md / CLAUDE.md for any repo by detecting its stack, commands, and structure",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"funding": {
|
|
7
7
|
"type": "individual",
|
|
8
|
-
"url": "https://
|
|
8
|
+
"url": "https://www.npmjs.com/package/agents-md-gen"
|
|
9
9
|
},
|
|
10
10
|
"bin": {
|
|
11
11
|
"agents-md-gen": "bin/cli.js"
|
|
@@ -52,6 +52,8 @@
|
|
|
52
52
|
"cpp",
|
|
53
53
|
"haskell",
|
|
54
54
|
"scala",
|
|
55
|
+
"zig",
|
|
56
|
+
"julia",
|
|
55
57
|
"cli",
|
|
56
58
|
"codegen",
|
|
57
59
|
"developer-tools"
|
package/src/detect.js
CHANGED
|
@@ -229,6 +229,51 @@ function detectRuby(root) {
|
|
|
229
229
|
};
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
+
function detectZig(root) {
|
|
233
|
+
const buildZig = readText(root, 'build.zig');
|
|
234
|
+
if (!buildZig) return null;
|
|
235
|
+
const nameMatch = readText(root, 'build.zig.zon');
|
|
236
|
+
const zonNameMatch = nameMatch ? nameMatch.match(/\.name\s*=\s*\.?([A-Za-z0-9_]+)/) : null;
|
|
237
|
+
|
|
238
|
+
return {
|
|
239
|
+
ecosystem: 'Zig',
|
|
240
|
+
name: zonNameMatch ? zonNameMatch[1] : null,
|
|
241
|
+
description: null,
|
|
242
|
+
packageManager: 'zig',
|
|
243
|
+
frameworks: [],
|
|
244
|
+
testFramework: /test\s*\{/.test(buildZig) ? 'zig test' : null,
|
|
245
|
+
commands: {
|
|
246
|
+
install: null,
|
|
247
|
+
build: 'zig build',
|
|
248
|
+
test: 'zig build test',
|
|
249
|
+
lint: 'zig fmt --check .',
|
|
250
|
+
dev: null,
|
|
251
|
+
},
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function detectJulia(root) {
|
|
256
|
+
const projectToml = readText(root, 'Project.toml');
|
|
257
|
+
if (!projectToml) return null;
|
|
258
|
+
const nameMatch = projectToml.match(/^name\s*=\s*"([^"]+)"/m);
|
|
259
|
+
|
|
260
|
+
return {
|
|
261
|
+
ecosystem: 'Julia',
|
|
262
|
+
name: nameMatch ? nameMatch[1] : null,
|
|
263
|
+
description: null,
|
|
264
|
+
packageManager: 'Pkg',
|
|
265
|
+
frameworks: [],
|
|
266
|
+
testFramework: exists(root, 'test', 'runtests.jl') ? 'Test' : null,
|
|
267
|
+
commands: {
|
|
268
|
+
install: 'julia --project -e "using Pkg; Pkg.instantiate()"',
|
|
269
|
+
build: null,
|
|
270
|
+
test: exists(root, 'test', 'runtests.jl') ? 'julia --project -e "using Pkg; Pkg.test()"' : null,
|
|
271
|
+
lint: null,
|
|
272
|
+
dev: null,
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
|
|
232
277
|
function detectCpp(root) {
|
|
233
278
|
const hasCMake = exists(root, 'CMakeLists.txt');
|
|
234
279
|
const hasMakefile = exists(root, 'Makefile') || exists(root, 'makefile');
|
|
@@ -555,7 +600,7 @@ function detectMonorepo(root) {
|
|
|
555
600
|
}
|
|
556
601
|
|
|
557
602
|
function detectProject(root) {
|
|
558
|
-
const detectors = [detectNode, detectPython, detectRust, detectGo, detectRuby, detectJava, detectPhp, detectDotnet, detectSwift, detectDart, detectElixir, detectCpp, detectHaskell, detectScala];
|
|
603
|
+
const detectors = [detectNode, detectPython, detectRust, detectGo, detectRuby, detectJava, detectPhp, detectDotnet, detectSwift, detectDart, detectElixir, detectCpp, detectHaskell, detectScala, detectZig, detectJulia];
|
|
559
604
|
const stacks = detectors.map((fn) => fn(root)).filter(Boolean);
|
|
560
605
|
|
|
561
606
|
return {
|