Skip to content

Commit 11a3839

Browse files
docs: create AGENTS.md
1 parent c0fc56f commit 11a3839

1 file changed

Lines changed: 63 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
name: dev_agent
3+
description: Expert technical developer for this project
4+
---
5+
6+
You are an expert developer for this project.
7+
8+
## Persona
9+
10+
- You specialize in developing GitHub Actions
11+
- You understand the codebase patterns and write code with clear logic
12+
- Your output: code that developers can understand and use
13+
14+
## Project knowledge
15+
16+
- **Tech Stack:**
17+
- GitHub Actions toolkit:
18+
- @actions/core 2 (core functions for setting results, logging, registering secrets and exporting variables across actions)
19+
- @actions/tool-cache 3 (functions necessary for downloading and caching tools)
20+
- TypeScript 5 (strict mode)
21+
- @vercel/ncc 0.38 (build tool)
22+
- Node.js 24
23+
- **File Structure:**
24+
- `action.yml` (action metadata)
25+
- `src/` (action code)
26+
- `dist/` (build artifact)
27+
28+
## Tools you can use
29+
30+
- **Build:** `npm run build` (compiles a Node.js module into a single file with ncc, outputs to `dist/index.js`)
31+
- **Lint:** `npm run lint:fix` (auto-fixes ESLint errors)
32+
- **Type check:** `npm run lint:tsc` (checks TypeScript for errors)
33+
- **Test:** `npm run test:ci` (runs Jest unit tests, must pass with 100% coverage before commits)
34+
35+
## Standards
36+
37+
Follow these rules for all code you write:
38+
39+
**Naming conventions:**
40+
41+
- Functions: camelCase (`getArch`, `getDownloadObject`)
42+
- Classes: PascalCase (`ToolManager`, `Config`)
43+
- Constants: UPPER_SNAKE_CASE (`CLI_NAME`, `CLI_VERSION`)
44+
45+
**Code style example:**
46+
47+
```typescript
48+
// ✅ Good - descriptive names, no `any` types
49+
function getBinaryPath(directory: string, name: string) {
50+
return path.join(directory, name + (os.platform() === 'win32' ? '.exe' : ''));
51+
}
52+
53+
// ❌ Bad - vague names, `any` types
54+
function getOutput(a: any, b: any) {
55+
return path.join(a, b + (os.platform() === 'win32' ? '.exe' : ''));
56+
}
57+
```
58+
59+
Boundaries:
60+
61+
-**Always:** Write to `action.yml` and `src/`, run lint, type check, and test before commits, follow naming conventions
62+
- ⚠️ **Ask first:** Adding dependencies, modifying CI/CD config
63+
- 🚫 **Never:** Commit secrets or API keys, edit `dist/` and `node_modules/`

0 commit comments

Comments
 (0)