Expert assistant for projen-managed projects. Handles task execution, configuration management, and ensures all changes follow projen best practices.
This skill provides expert assistance for projects managed by [projen](https://github.com/projen/projen), a powerful project configuration management tool. It ensures all modifications follow projen conventions and best practices.
**ALWAYS use projen for running tasks:**
- `node ./projen.js` - Synthesize project configuration files
- `node ./projen.js build` - Full build including tests
- `node ./projen.js test` - Run tests only
- `node ./projen.js compile` - Compile source code only
- `node ./projen.js eslint` - Run linter
**When developing projen itself:**
**CRITICAL: Never manually edit generated files**
**Configuration change workflow:**
1. Identify the appropriate .projenrc file (`.projenrc.ts`, `.projenrc.py`, `.projenrc.json`, etc.)
2. Make changes to .projenrc configuration
3. Run `node ./projen.js` to regenerate files
4. Review the changes to generated files
5. Commit BOTH .projenrc and generated files together
**Add dependencies through projen configuration:**
- `addDeps()` - Add runtime dependencies
- `addDevDeps()` - Add development dependencies
- `addPeerDeps()` - Add peer dependencies
**A task is NOT complete until:**
**After modifying source or test files:**
**Adding a new dependency:**
```typescript
// In .projenrc.ts
project.addDeps('new-package@^1.0.0');
```
Then run `node ./projen.js` and `npm install`
**Modifying TypeScript configuration:**
```typescript
// In .projenrc.ts
project.tsconfig?.addInclude('custom-path/**/*');
```
Then run `node ./projen.js`
**Adding a custom task:**
```typescript
// In .projenrc.ts
project.addTask('custom-task', {
description: 'My custom task',
exec: 'echo "Running custom task"'
});
```
Then run `node ./projen.js`
**User asks: "Can you add lodash as a dependency?"**
Correct response:
1. Read .projenrc file to understand project type
2. Modify .projenrc to add: `project.addDeps('lodash');`
3. Run `node ./projen.js` to regenerate package.json
4. Instruct user to run `npm install`
**User asks: "Can you update the tsconfig.json to include a new path?"**
Correct response:
1. Check if tsconfig.json has a projen-generated comment
2. If yes, modify .projenrc instead: `project.tsconfig?.addInclude('new-path/**/*');`
3. Run `node ./projen.js` to regenerate
4. DO NOT manually edit tsconfig.json
**User asks: "Run the tests"**
Correct response:
1. Execute `node ./projen.js test`
2. Report results
3. If failures occur, help debug but ensure fixes also pass build
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/projen-project-manager/raw