Skip to content

docs(guides): add Ejentum cognitive harness guide#3733

Closed
ejentum wants to merge 2 commits into
triggerdotdev:mainfrom
ejentum:docs-guides-frameworks-ejentum
Closed

docs(guides): add Ejentum cognitive harness guide#3733
ejentum wants to merge 2 commits into
triggerdotdev:mainfrom
ejentum:docs-guides-frameworks-ejentum

Conversation

@ejentum
Copy link
Copy Markdown

@ejentum ejentum commented May 23, 2026

Summary

Adds a new guide under docs/guides/frameworks/ejentum-cognitive-harness.mdx showing how to call the Ejentum cognitive harness inside a Trigger.dev task. The harness REST gateway returns task-matched reasoning scaffolds for one of four modes (reasoning, code, anti-deception, memory); the task fetches the scaffold and splices it into the system message of an OpenAI chat completion before returning.

Matches the existing docs/guides/frameworks/nango.mdx pattern: frontmatter (title, sidebarTitle, description, icon), intro, prerequisites, env vars, the task code, how to trigger it, and a mode-selection table.

Files

  • docs/guides/frameworks/ejentum-cognitive-harness.mdx (new)
  • docs/docs.json (one-line nav registration, alphabetically between drizzle and nango)

What the guide walks through

  1. Set EJENTUM_API_KEY and OPENAI_API_KEY in your Trigger.dev environment.
  2. Define an ejentumHarness task with retry: { maxAttempts: 3 } covering both external calls.
  3. Inside the task: call the Ejentum REST gateway with the requested mode, then call OpenAI with the returned scaffold spliced into the system message.
  4. Return both the scaffold and the augmented response so callers can inspect what was injected.

Affiliation

I maintain the Ejentum harness API. Submitting this as a Trigger.dev guide because the durability/retry/observability story Trigger.dev already provides is a natural fit for a harness-fetch-then-LLM-call pipeline. The guide names the four modes and provides a selection table so readers know when each one fits. Ejentum has free and paid tiers; the guide links to the dashboard for keys, not to a checkout.

Test plan

  • Mirrors the structure of docs/guides/frameworks/nango.mdx (frontmatter, prereqs, code block, trigger snippet).
  • Registered in docs/docs.json next to other framework guides.
  • Voice scrubbed (no em dashes).
  • No new dependencies beyond openai (already common in Trigger.dev AI tasks).
  • Local mintlify dev (cannot run Mintlify in this environment; happy to follow up if the reviewer spots a rendering issue).

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 23, 2026

⚠️ No Changeset found

Latest commit: f2bf2a0

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

Hi @ejentum, thanks for your interest in contributing!

This project requires that pull request authors are vouched, and you are not in the list of vouched users.

This PR will be closed automatically. See https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md for more details.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 23, 2026

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: da2ae962-b09a-418e-94cd-0d4a307cbee5

📥 Commits

Reviewing files that changed from the base of the PR and between 9f64bf4 and f2bf2a0.

📒 Files selected for processing (2)
  • docs/docs.json
  • docs/guides/frameworks/ejentum-cognitive-harness.mdx

Walkthrough

This PR adds a new Trigger.dev integration guide for Ejentum Cognitive Harness. The change registers a new documentation page in the navigation structure and creates a comprehensive MDX guide explaining how to use Ejentum within Trigger.dev tasks. The guide introduces the concept of reasoning scaffolds, provides a complete TypeScript task implementation that retrieves scaffolds from Ejentum via REST, injects them into an OpenAI system prompt, executes chat completions with retry logic, and documents expected Trigger.dev dashboard behavior and mode selection patterns.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot closed this May 23, 2026
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

View 2 additional findings in Devin Review.

Open in Devin Review

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 New third-party integration guide — legitimacy and scope

This PR adds documentation for "Ejentum", a third-party cognitive harness API. The guide hardcodes a specific Zuplo gateway URL (https://ejentum-main-ab125c3.zuplo.app/logicv1/) at docs/guides/frameworks/ejentum-cognitive-harness.mdx:40. This URL contains what appears to be a deployment hash (ab125c3), which could become stale if the service redeploys. Additionally, Ejentum appears to be a relatively new/niche service — maintainers may want to verify its legitimacy and evaluate whether it merits inclusion in official docs alongside established integrations like Prisma, Drizzle, Supabase, etc.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +107 to +117
import { tasks } from "@trigger.dev/sdk";
import type { ejentumHarness } from "./trigger/ejentum-harness";

const handle = await tasks.trigger<typeof ejentumHarness>("ejentum-harness", {
task: "We have 50M users and want to add a NOT NULL column. Walk through the trade-offs and recommend a path.",
mode: "reasoning",
});

const result = await handle.poll();
console.log(result.output.answer);
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Documentation code example calls non-existent handle.poll() method instead of runs.poll(handle)

The "Triggering the task" code example calls handle.poll() on line 115, but RunHandle is a plain object type ({ id: string; publicAccessToken: string }) that has no poll method. The correct API is runs.poll(handle), which is a standalone function exported from the runs namespace (see packages/trigger-sdk/src/v3/runs.ts:46-52). Users following this guide will get a runtime error: handle.poll is not a function. The import line also needs to import runs from @trigger.dev/sdk.

Suggested change
import { tasks } from "@trigger.dev/sdk";
import type { ejentumHarness } from "./trigger/ejentum-harness";
const handle = await tasks.trigger<typeof ejentumHarness>("ejentum-harness", {
task: "We have 50M users and want to add a NOT NULL column. Walk through the trade-offs and recommend a path.",
mode: "reasoning",
});
const result = await handle.poll();
console.log(result.output.answer);
```
```ts
import { tasks, runs } from "@trigger.dev/sdk";
import type { ejentumHarness } from "./trigger/ejentum-harness";
const handle = await tasks.trigger<typeof ejentumHarness>("ejentum-harness", {
task: "We have 50M users and want to add a NOT NULL column. Walk through the trade-offs and recommend a path.",
mode: "reasoning",
});
const result = await runs.poll(handle);
console.log(result.output.answer);
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant