Guidelines for working with projen-managed projects. Handles task execution, file modifications, dependencies, and ClickUp-specific project types with proper workflow integration.
Expert guidance for working with [projen](https://github.com/projen/projen)-managed projects, including ClickUp-specific TypeScript and CDK project types.
When working in a projen-managed project, you MUST follow these rules:
**CRITICAL:** Files marked with comments like "~~ Generated by projen. To modify..." are automatically generated and will be overwritten.
Run tasks using `npx projen <task-name>` instead of npm/yarn/pnpm directly:
```bash
npx projen # Synthesize project configuration
npx projen build # Build project (includes tests)
npx projen test # Run tests only
npx projen compile # Compile source code only
```
Check `.projen/tasks.json` to see all available tasks with descriptions and steps.
Add dependencies via `.projenrc` configuration, not by editing `package.json`:
```typescript
// In .projenrc.ts
project.addDeps('my-dependency');
project.addDevDeps('my-dev-dependency');
project.addPeerDeps('my-peer-dependency');
```
Then run `npx projen` to update `package.json`.
1. Make changes to `.projenrc` configuration file
2. Run `npx projen` to synthesize and update generated files
3. Review the changes (check git diff)
4. Run `npx projen build` to verify everything compiles and tests pass
5. Commit both `.projenrc` and the generated files together
A task is not complete until:
This repository provides custom projen project types for ClickUp:
**TypeScript Libraries:**
**CDK Projects:**
```bash
pnpm projen # Regenerate project files
pnpm build # Compile + test with coverage
pnpm test # Run tests
pnpm test:watch # Watch mode
pnpm eslint # Lint code
pnpm test path/to/test-file.test.ts
pnpm build
projen new --from /path/to/dist/js/[email protected] <project-type>
```
Key configuration modules:
- `renovate-workflow.ts` - Auto-merge dependency updates
- `cdk-diff-workflow.ts` - PR CDK diff visualization
- `codecov-bypass-workflow.ts` - Codecov requirement bypass
- `update-projen.ts` - Automated projen upgrades
- `datadog.ts` - Release event tracking
- `slack-alert.ts` - Release notifications
- `codecov.ts` - 90%+ coverage thresholds
Centralized in `src/utils/parameters.ts`:
Generated projects include:
Configure access for consuming this library:
```bash
cat >> ~/.npmrc <<EOF
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_PAT
@time-loop:registry=https://npm.pkg.github.com/
EOF
```
PAT needs `read:packages` scope minimum.
1. Create/modify module in `src/`
2. Add test in `test/` with snapshot testing
3. Export from `src/index.ts` if public API
4. Run `pnpm projen` to regenerate API.md
5. Run `pnpm test -- -u` to update snapshots
6. Verify with local tarball in test project
When making changes:
1. Update code
2. Run `pnpm test` - snapshots may fail
3. **Carefully review** snapshot diffs
4. Run `pnpm test -- -u` to update snapshots if intentional
5. Commit updated snapshots with changes
All project options use `ts-deepmerge` with layering:
1. Base defaults
2. User-provided options
3. Forced overrides
This ensures consistency while allowing customization.
**Problem:** Package.json changed after `pnpm projen`
**Solution:** Run `pnpm install` before committing
**Problem:** Generated files keep getting overwritten
**Solution:** Don't edit them directly - modify `.projenrc` instead
**Problem:** Snapshot tests failing
**Solution:** Review diffs, update with `pnpm test -- -u` if changes are intentional
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/projen-project-configuration/raw