feat: Add skill for OpenJD job generation.#228
Conversation
Signed-off-by: Karthik BekalPattathana <133984042+karthikbekalp@users.noreply.github.com>
|
|
||
| | Source | When to Read | | ||
| |--------|--------------| | ||
| | [Conda blog post](https://aws.amazon.com/blogs/media/create-a-conda-package-and-channel-for-aws-deadline-cloud/) | Overview of conda channels for Deadline Cloud | |
There was a problem hiding this comment.
It would be better to link to link to https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/configure-jobs-s3-channel.html that is more recently updated.
There was a problem hiding this comment.
Makes sense. Updated.
Signed-off-by: Karthik BekalPattathana <133984042+karthikbekalp@users.noreply.github.com>
crowecawcaw
left a comment
There was a problem hiding this comment.
Left some suggestions but no blockers
| ## Skills — task-specific instructions | ||
|
|
||
| The [`skills/`](./skills/) directory contains self-contained, LLM-agnostic | ||
| guides for common tasks. Each skill is a Markdown file with YAML frontmatter | ||
| (`name`, `description`, `tags`) followed by step-by-step instructions, | ||
| references, and examples. | ||
|
|
||
| **Before starting work, check `skills/` for a matching guide and read it.** | ||
| The `description` field tells you when to use each skill. | ||
|
|
||
| | Skill | Use when | | ||
| |-------|----------| | ||
| | [`skills/openjd-template/`](./skills/openjd-template/SKILL.md) | Creating or updating an OpenJD job bundle template under `job_bundles/` | | ||
| | [`skills/conda-builder/`](./skills/conda-builder/SKILL.md) | Creating or updating a DCC conda recipe under `conda_recipes/` | | ||
| | [`skills/3dsmax-host-config/`](./skills/3dsmax-host-config/SKILL.md) | Creating or updating a 3ds Max host configuration script | | ||
| | [`skills/host-config-from-installer/`](./skills/host-config-from-installer/SKILL.md) | Creating a host configuration script from a vendor installer | | ||
|
|
||
| Skills are auto-discovered via `.claude/skills` and `.kiro/skills` symlinks. | ||
| For other tools, point your assistant at the relevant `SKILL.md` directly | ||
| (paste, `@`-mention, or include in context). |
There was a problem hiding this comment.
Do we need to say this? I thought agents picked up skills and their descriptions automatically.
There was a problem hiding this comment.
Yeah I thought that too. But turns out only Claude and Kiro do that. Other agents like OpenAI's Chatgpt and Gemini don't and rely on AGENTS.md to help them steer.
Although, with the skills becoming more prevalent this might not be needed in the future, but I think its better to be explicit for now to ensure the agents use the skills.
| name: openjd-template | ||
| description: > | ||
| Create Open Job Description (OpenJD) job bundle templates for AWS Deadline | ||
| Cloud, with optional conda packaging. Use when asked to "create a job bundle", | ||
| "write an OpenJD template", "add a new sample job", "create a render job for | ||
| <DCC>", or when a new workflow needs an OpenJD template with parameters, | ||
| steps, and environments. |
There was a problem hiding this comment.
I think we should relabel this as a skill for creating Deadline Cloud jobs. These are OJD templates, but I think agents will be trying to write a job for Deadline not writing an OJD template. Also many concepts are Deadline specific. I think OJD could be a tag or mentioned in the description without being the title.
There was a problem hiding this comment.
Yeah, I added deadline-cloud and job-bundles as tags, but probably what you are suggesting is better. Updating.
|
|
||
| 1. **Design the job** — Define parameters, steps, environments, and dependencies | ||
| 2. **Write the template** — Create the OpenJD YAML template | ||
| 3. **Test locally** — Iterate with `openjd run --tasks <one>` until end-to-end success (see Testing section) |
There was a problem hiding this comment.
I personally don't do this and always run things on Deadline directly. Maybe mark this as optional?
There was a problem hiding this comment.
Cool, I wanted to do this so that the agents can run in a loop and verify if the job bundle works before they submit to the farm as that can cost them.
But I don't have any strong preference, I'll mark them as optional.
| ### Core OpenJD Specification (READ FIRST for any template work) | ||
|
|
||
| | Source | When to Read | | ||
| |--------|--------------| | ||
| | [Template Schemas](https://raw.githubusercontent.com/OpenJobDescription/openjd-specifications/mainline/wiki/2023-09-Template-Schemas.md) | **Always** — complete schema reference for job templates | |
There was a problem hiding this comment.
Nit: might take out ALWAYS and READ FIRST. I've had success just giving agents the samples repo for most things.
There was a problem hiding this comment.
Cool, updated.
Signed-off-by: Karthik BekalPattathana <133984042+karthikbekalp@users.noreply.github.com>
What was the problem/requirement? (What/Why)
This repo had no LLM-agnostic guidance for creating new OpenJD job bundle templates, so every new sample relied on the contributor reading the OpenJD spec, scanning existing bundles, and rediscovering the local-test-then-submit workflow on their own.
We also had no top-level pointer file for AI coding assistants — agents using Codex CLI, Aider, Cursor, Copilot, Gemini, ChatGPT, etc. had nothing to anchor on, while Claude Code and Kiro auto-discover
skills/via their respective config folders.Kudos to @prestomation for sharing the open JD skill.
What was the solution? (How)
skills/deadline-cloud-job/SKILL.md— a self-contained guide for creating OpenJD job bundles, modeled on the existingconda-builderand3dsmax-host-configskills..claude/skills→../skillsto mirror the existing.kiro/skills → ../skillssymlink, so Claude Code auto-discovers all four skills.AGENTS.mdat the repo root — the emerging cross-tool standard (read by Codex CLI, Aider, Cline, Continue, etc.). It describes what the repo is, where things live, which skills exist, repo conventions (inclusive language,pip install, local-iteration-before-submit), and the conventional-commit format.What is the impact of this change?
openjd run --tasks <one>before submitting full parameter ranges to a farm — saving farm minutes and speeding up sample development.AGENTS.md.job_bundles/,conda_recipes/, or any other sample directory.How was this change tested?
Was this change documented?
skills/openjd-template/SKILL.mdis itself the documentation for the workflow it describes.AGENTS.mdat the repo root documents the directory layout, skill index, and conventions for AI assistants.README.md— it already lists the directories that the new skill references.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.