@@ -3,60 +3,41 @@ name: dev_agent
33description : Expert technical engineer for this GitHub Action
44---
55
6- ## Persona
7-
8- - You specialize in developing GitHub Actions
9- - You understand the codebase patterns and write clear and DRY logic
10- - Your output: code that CI developers can understand and use
11-
12- ## Project
13-
14- - ** Tech Stack:**
15- - GitHub Actions toolkit:
16- - @actions/core 3 (functions for setting results, logging, registering secrets and exporting variables across actions)
17- - @actions/exec 3 (executes cross-platform tools)
18- - @actions/tool-cache 4 (downloads and caches tools)
19- - TypeScript 5 (strict mode)
20- - tsup 8 (build tool)
21- - Node.js 24 (runtime used to execute the code)
22- - ** File Structure:**
23- - ` action.yml ` (action metadata)
24- - ` src/ ` (source code)
25- - ` dist/index.js ` (build artifact)
6+ ## Tech Stack
267
27- ## Scripts
28-
29- - ** Build:** ` npm run build ` (compiles TypeScript with tsup, outputs to ` dist/index.js ` )
30- - ** Lint:** ` npm run lint:fix ` (auto-fixes ESLint errors)
31- - ** Type check:** ` npm run lint:tsc ` (checks TypeScript for errors)
32- - ** Test:** ` npm run test:ci ` (runs Vitest tests, must pass with 100% coverage before commit)
8+ | Tool | Version | Purpose |
9+ | ------------------- | ------- | ------------------------------------------------- |
10+ | @actions/core | 3 | GitHub Actions toolkit (logging, inputs, outputs) |
11+ | @actions/exec | 3 | Cross-platform command execution |
12+ | @actions/tool-cache | 4 | Download and cache CLI tools |
13+ | TypeScript | 6 | Language (strict mode) |
14+ | tsup | 8 | Build tool |
15+ | Vitest | 4 | Test framework |
16+ | Node.js | 24 | Runtime |
3317
34- ## Standards
18+ ## File Structure
3519
36- Follow these rules for all code you write:
20+ - ` action.yml ` - Action metadata
21+ - ` src/ ` - Source code
22+ - ` dist/index.js ` - Build artifact
3723
38- ** Naming conventions: **
24+ ## Scripts
3925
40- - Functions: camelCase (` getArch ` , ` getDownloadObject ` )
41- - Classes: PascalCase (` ToolManager ` , ` Config ` )
42- - Constants: UPPER_SNAKE_CASE (` CLI_NAME ` , ` CLI_VERSION ` )
26+ | Command | Purpose |
27+ | ------------------ | ---------------------------------- |
28+ | ` npm run build ` | Compile to ` dist/index.js ` |
29+ | ` npm run lint:fix ` | Auto-fix ESLint errors |
30+ | ` npm run lint:tsc ` | Type-check all files |
31+ | ` npm run test:ci ` | Run tests (100% coverage required) |
4332
44- ** Code style example: **
33+ ## Standards
4534
46- ``` typescript
47- // ✅ Good - descriptive names, no `any` types
48- function getBinaryPath(directory : string , name : string ) {
49- return path .join (directory , name + (os .platform () === ' win32' ? ' .exe' : ' ' ));
50- }
35+ ** Naming:** Functions = ` camelCase ` , Classes = ` PascalCase ` , Constants = ` UPPER_SNAKE_CASE `
5136
52- // ❌ Bad - vague names, `any` types
53- function getOutput(a : any , b : any ) {
54- return path .join (a , b + (os .platform () === ' win32' ? ' .exe' : ' ' ));
55- }
56- ```
37+ ** Code style:** Use descriptive names, explicit types. Never use ` any ` .
5738
58- Boundaries:
39+ ** Boundaries:**
5940
60- - ✅ ** Always:** Write to ` action.yml ` and ` src/ ` , run lint, type check, and test before commit, follow naming conventions
41+ - ✅ ** Always:** Write to ` action.yml ` and ` src/ ` ; run lint, type check, and test before commit; follow naming conventions
6142- ⚠️ ** Ask first:** Adding dependencies, modifying CI/CD config
6243- 🚫 ** Never:** Commit secrets or API keys, edit ` dist/ ` and ` node_modules/ `
0 commit comments