mirror of
https://github.com/triggerdotdev/skills.git
synced 2026-09-19 02:35:32 +08:00
719099668b
Rename all skills to avoid clashes with other skill providers: - setup → trigger-setup - tasks → trigger-tasks - config → trigger-config - agents → trigger-agents - realtime → trigger-realtime Updates folder names, SKILL.md name fields, README, and AGENTS.md.
1.9 KiB
1.9 KiB
Project Structure
Default Layout
your-project/
├── trigger.config.ts # Required - project configuration
├── trigger/ # Default task directory
│ ├── example.ts # Created by `npx trigger init`
│ └── ...
├── package.json
└── src/ # Your app code
Monorepo Layout
For monorepos, place trigger.config.ts in the package that contains your tasks:
monorepo/
├── packages/
│ ├── api/
│ │ ├── trigger.config.ts # Config here
│ │ ├── trigger/ # Tasks here
│ │ └── src/
│ └── web/
└── package.json
Multiple Task Directories
Configure multiple directories in trigger.config.ts:
import { defineConfig } from "@trigger.dev/sdk";
export default defineConfig({
project: "proj_xxxxx",
dirs: [
"./trigger", // Default
"./src/jobs", // Additional
"./src/scheduled", // Another
],
});
Collocated Tasks
Keep tasks next to related code:
src/
├── users/
│ ├── routes.ts
│ └── tasks/
│ └── send-welcome-email.ts
├── orders/
│ ├── routes.ts
│ └── tasks/
│ └── process-order.ts
// trigger.config.ts
export default defineConfig({
project: "proj_xxxxx",
dirs: ["./src/**/tasks"], // Glob pattern
});
Task File Requirements
Each task file must:
- Export tasks (named exports)
- Use
task()orschemaTask()from@trigger.dev/sdk - Have unique task IDs across all files
// ✅ Correct - exported task
export const myTask = task({
id: "my-task", // Unique ID
run: async (payload) => { ... },
});
// ❌ Wrong - not exported
const privateTask = task({ ... });
// ❌ Wrong - duplicate ID will error
export const anotherTask = task({
id: "my-task", // Conflicts!
run: async (payload) => { ... },
});