Contributing to arc-dag
Thank you for your interest in contributing. arc-dag is the open-source core engine of ArcPX — we welcome improvements to the library and community node type examples that help others build custom wrappers.
Getting started
bash
git clone https://github.com/arcpx-eng/arc-dag.git
cd arc-dag
npm install # only TypeScript + @types/node — not the docs site
npm run build
npm run run:localDocs site (optional): cd docs-site && npm install && npm start — VitePress lives only in docs-site/ and is not published with the arc-dag npm package.
Pull requests welcome: new node types
The engine stays small and pluggable. The best way to share integrations is to add a reference node type under examples/node-types/.
What to include in your PR
- Folder:
examples/node-types/<type-name>/ README.mdin your node folder + links fromdocs/where relevant (payload-guide,byo-llm,api)executor.example.mjs— handler users can copy intonodeExecutornode.sample.json(optional) — sampleFlowNodefor documentation- Row in
examples/node-types/README.mdindex table
Node type PR rules
- No API keys or tokens in committed files — env vars only
- No new required dependencies on the core
arc-dagpackage — document optional installs in your README - Keep handlers focused — one node type per folder; large platforms can split operations in README tables
- Prefer fetch or document optional SDKs clearly
- Mention rate limits, auth, and platform ToS where relevant
Example commit titles
feat(examples): add slack webhook node type with sample nodefeat(examples): postgres query handler and READMEdocs: index postgres node type in node-types README
Other contributions
| Area | Examples |
|---|---|
| Core engine | Scheduling, dependency edge cases, performance |
| Payload tooling | normalizeFlow, parsers, validation |
| Documentation | docs/, root README links |
| Examples | Normalized pipeline samples, runner improvements |
Out of scope for this repo:
- Bundling a full node catalog into core arc-dag (stays pluggable via
nodeExecutor) - ArcPX cloud / Lambda / CDK (see arcpx-infra)
- Full canvas UI (see arc-dag-ui skill)
Pull request guidelines
- One concern per PR — bugfix, engine change, or node-type example; avoid mixing.
- Build must pass:
npm run build - Document changes — README,
docs/,examples/node-types/, or CHANGELOG. - No secrets — never commit credentials in JSON or code.
- License — contributions are under the project MIT License.
Code style
- TypeScript strict mode for
src/; match existing layout - Example handlers in
examples/may use.mjsand dynamic import for optional SDKs - Public API changes must update
src/index.tsand API reference
Questions
Open a GitHub issue for bugs, node-type proposals, or design discussion before a large PR.