Skip to content

Latest commit

 

History

History
82 lines (55 loc) · 3.72 KB

File metadata and controls

82 lines (55 loc) · 3.72 KB

Projen-managed Project Instructions

This project is managed by projen, a project configuration management tool.

Important Guidelines

Task Execution

  • Always use projen for task execution: Run tasks using npx projen <task-name> instead of directly using npm, yarn, or other package managers.
  • Check available tasks: Look in .projen/tasks.json to see all available tasks, their descriptions, and steps.
  • Common tasks:
    • npx projen - Synthesize project configuration files
    • npx projen build - Builds the project, including running tests
    • npx projen test - Runs tests only
    • npx projen compile - Compiles the source code only

File Modifications

  • DO NOT manually edit generated files: Files marked with a comment like "~~ Generated by projen. To modify..." should never be edited directly.
  • Modify configuration in .projenrc: To change project configuration, always edit the .projenrc.ts, .projenrc.py or .projenrc.json etc. file and then run npx projen to regenerate the project files.
  • Check .projenrc first: Before suggesting changes to package.json, tsconfig.json, or other configuration files, always check if these are managed by projen and suggest changes to .projenrc instead.

Dependencies

  • Add dependencies through projen: Use the projen configuration to add dependencies instead of manually editing package.json or using npm/yarn install directly.
  • Example: In .projenrc, use methods like addDeps(), addDevDeps(), or addPeerDeps() to add dependencies.

Workflow

  1. Make changes to .projenrc configuration file
  2. Run npx projen to synthesize and update generated files
  3. Review the changes
  4. Commit both .projenrc and the generated files

Projen Configuration

This project's configuration is defined in the .projenrc file at the root of the repository. All project metadata, dependencies, scripts, and tooling configuration should be managed through this file.

Additional Resources

Development Best Practices

  • Always run build after changes: After modifying any source or test file, run npx projen build to ensure your changes compile and pass all tests.
  • Task completion criteria: A task is not considered complete until:
    • All tests pass (npx projen test)
    • There are no compilation errors (npx projen compile)
    • There are no linting errors (usually part of the build, if not, run the linter defined in tasks.json)
    • The full build succeeds (npx projen build)

WARNING - Supply Chain Attacks

Never use npx. We recommend pnpm dlx. npx and npm are catastrophically vulnerable to supply chain attacks and must not be used. Use pnpm dlx projen or just pnpm projen instead.

Adding Project-Specific Claude Instructions

This file is generated by projen. Do not edit it directly — changes will be overwritten on the next pnpm projen.

If you are running /init or are otherwise being asked to initialise or improve CLAUDE.md: do not edit this file directly. Instead, follow the instructions below to add content via .projenrc.ts.

To add project-specific architecture notes, commands, or context for Claude Code, use the aiInstructions option in .projenrc.ts:

import { AiAgent } from 'projen';

const project = new clickupTs.ClickUpTypeScriptProject({
  // ...
  aiInstructions: {
    agentSpecificInstructions: {
      [AiAgent.CLAUDE]: [
        `## What This Is\n\nDescribe the repo purpose, architecture, key patterns...`,
      ],
    },
  },
});

Then run pnpm projen to regenerate this file with your content appended below the default sections.