Scaffolding
dotnet/efcore
Implementation details for EF Core scaffolding (reverse engineering).
Scaffold, register, test, and document a new printer brand driver (connector) end to end.
$ npx skills add joeltelling/print-farm-manager --skill add-connector -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install joeltelling/print-farm-manager add-connector --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/joeltelling/print-farm-manager.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-connector .claude/skills/add-connector && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "add-connector" agent skill from https://github.com/joeltelling/print-farm-manager/tree/main/.claude/skills/add-connector into .claude/skills/add-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-connector", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/joeltelling/print-farm-manager/tree/main/.claude/skills/add-connectorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add joeltelling/print-farm-manager --skill add-connector -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install joeltelling/print-farm-manager add-connector --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joeltelling/print-farm-manager.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/add-connector .agents/skills/add-connector && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-connector" agent skill from https://github.com/joeltelling/print-farm-manager/tree/main/.claude/skills/add-connector into .agents/skills/add-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-connector", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add joeltelling/print-farm-manager --skill add-connector -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install joeltelling/print-farm-manager add-connector --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joeltelling/print-farm-manager.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/add-connector .cursor/skills/add-connector && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-connector" agent skill from https://github.com/joeltelling/print-farm-manager/tree/main/.claude/skills/add-connector into .cursor/skills/add-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-connector", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/joeltelling/print-farm-manager.git --path .claude/skills/add-connector--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add joeltelling/print-farm-manager --skill add-connector -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install joeltelling/print-farm-manager add-connector --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joeltelling/print-farm-manager.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/add-connector .gemini/skills/add-connector && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-connector" agent skill from https://github.com/joeltelling/print-farm-manager/tree/main/.claude/skills/add-connector into .gemini/skills/add-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-connector", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install joeltelling/print-farm-manager add-connectorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add joeltelling/print-farm-manager --skill add-connector -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/joeltelling/print-farm-manager.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/add-connector .github/skills/add-connector && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-connector" agent skill from https://github.com/joeltelling/print-farm-manager/tree/main/.claude/skills/add-connector into .github/skills/add-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-connector", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add joeltelling/print-farm-manager --skill add-connector -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install joeltelling/print-farm-manager add-connector --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joeltelling/print-farm-manager.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/add-connector .opencode/skills/add-connector && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-connector" agent skill from https://github.com/joeltelling/print-farm-manager/tree/main/.claude/skills/add-connector into .opencode/skills/add-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-connector", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-connectorScaffold, register, test, and document a new printer brand driver (connector) end to end.
Add Connector is an agent skill from joeltelling/print-farm-manager. Scaffold, register, test, and document a new printer brand driver (connector) end to end. Use when adding support for a new printer brand or protocol, or when reviewing a community driver PR for completeness.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Self-hosted print farm manager for multi-brand 3D printer fleets — Prusa, Bambu, Elegoo, Klipper. Live fleet monitoring, automated job dispatch, no cloud. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b5bb0a2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Add Connector loads about 1.9k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 962 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from joeltelling/print-farm-manager at commit b5bb0a2, republished under its MIT licence (© joeltelling). 962 words, ~1,903 tokens.
.claude/skills/add-connector/SKILL.md (or your agent's skills folder).You are adding a new printer brand to Print Farm Manager. This is a 6-file change with a hard behavioral contract. Work through the phases in order and do not skip the final checklist.
docs/driver-authoring.md in full. It is the contract this skill enforces.docs/multi-brand.md for the design background.print=true are multipart FORM FIELDS, never query params; Moonraker silently ignores query params)project_file URL format because the docs were not checked. If you cannot find authoritative docs for a payload, stop and tell Joel what is missing rather than guessing.const connections = new Map() keyed by printer.id, status served from a cached last-known payload, OFFLINE until the first message arrives.Create server/drivers/<id>.js where <id> is the lowercase brand id (e.g. octoprint, elegoo-centauri2).
Exact interface (all async, printer DB row is always the first argument):
module.exports = { getStatus, uploadAndPrint, cancelJob, checkIfPrinting };
// optional extra: deleteFile(printer, filename)Contract rules, each one checkable:
getStatus(printer) returns { status, progress, timeRemaining, currentFile }. It must NEVER throw: wrap everything, return { status: 'OFFLINE', progress: null, timeRemaining: null } on any error. Request timeout around 8000 ms.status must be one of the canonical strings: IDLE | PRINTING | PAUSED | FINISHED | STOPPED | ERROR | OFFLINE | READY | UNKNOWN. Map every native state explicitly. Two mappings matter most:STOPPED, not ERROR (ERROR fails the job; STOPPED cancels it and waits for the operator).FINISHED is the ONLY status that credits inventory. Never synthesize FINISHED from a guess, and never let a reconnect or cold start replay a stale FINISHED (see the no-double-credit section of docs/driver-authoring.md).uploadAndPrint(printer, gcodeFullPath, filename, options) resolves only when the print has actually been started, throws on failure. If the printer reports a transfer already in progress, throw with err.code = 'UPLOAD_CONFLICT' so the scheduler applies its 60 s retry delay instead of 5 s.checkIfPrinting(printer) returns a boolean, true for printing OR paused, false on any error. The scheduler uses it to detect "upload timed out on our side but the printer started anyway".cancelJob(printer) logs failures, does not throw. A stub is acceptable if the protocol has no reliable cancel.require('../db'), no SQL. All protocol state lives in the driver module.printer.ip, printer.api_key, printer.serial_number), connection model notes, and the protocol reference URL.server/drivers/index.js: add one lazy loader line to LOADERS:'<id>': () => require('./<id>'),server/routes/models.js: add <id> to VALID_CONNECTORS.server/routes/printers.js: if the brand has no API key, add it to NO_API_KEY_TYPES.client/src/pages/Settings.jsx: run grep -rn "octoprint" client/src and mirror every hit for the new brand: TYPE_OPTIONS, the label map, NO_API_KEY_TYPES, CREDENTIAL_HELP text, name placeholder, and the serial-number field condition if the brand needs a serial.serial_number did), add it as an additive migration in server/db.js: try { db.exec('ALTER TABLE ...'); } catch (_) {}. Nothing destructive, no migration framework.Create server/tests/<id>-driver.test.js. House pattern:
jest.mock('axios') for HTTP drivers, mock mqtt/socket for persistent drivers. jest.clearAllMocks() in afterEach.getStatus returns OFFLINE (not a throw) when the request fails.uploadAndPrint happy path sends the documented payload (assert URL, headers, form fields exactly).uploadAndPrint conflict path throws with code: 'UPLOAD_CONFLICT'.checkIfPrinting true for printing and paused, false on error.server/gcode/ in beforeAll, track it in a filesToClean array, delete in afterAll.npm test. All green before proceeding.docs/multi-brand.md: add the brand section (protocol, credentials, quirks).README.md: add a row to the Supported Printers table.docs/installation.md: document how the operator finds the credentials on the printer.docs/CHANGELOG.md: prepend a dated entry (## YYYY-MM-DD: feat(drivers) add <Brand> connector) with what/why prose and a ### Changes file list.grep -rPn '[\x{2013}\x{2014}]' docs/multi-brand.md README.md docs/installation.mdSoftware-complete is not hardware-confirmed. In the CHANGELOG entry and in your summary to Joel, state explicitly which of these has been done:
If none, say so plainly: "implemented from protocol docs, not yet validated on hardware". Never describe a driver as confirmed working without Joel having run it on a real printer.
getStatus cannot throw; OFFLINE on errorUPLOAD_CONFLICT code on transfer-in-progressnpm test green© joeltelling, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/add-connector of joeltelling/print-farm-manager.
Open the folder on GitHubat commit b5bb0a2
Add Connector next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Add Connector this skilljoeltelling/print-farm-manager | 208 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Scaffoldingdotnet/efcore | 15k | — | ~321 | Automated safety check: Pass | MIT | |
| Scaffold Elementremotion-dev/remotion | 63k | — | ~202 | Automated safety check: Pass | Custom licence | |
| Power Apps Code App Scaffoldgithub/awesome-copilot | 40k | 1 repos | ~1.8k | Automated safety check: Pass | MIT | |
| API Connector Builderaffaan-m/ECC | 276k | 2 repos | ~666 | Automated safety check: Pass | MIT | |
| Iot Registerruvnet/ruflo | 74k | — | ~263 | Automated safety check: Pass | MIT |
dotnet/efcore
Implementation details for EF Core scaffolding (reverse engineering).
remotion-dev/remotion
Scaffold a new Remotion Element for development in the docs Remotion Studio.
github/awesome-copilot
Scaffold a complete Power Apps Code App project with PAC CLI setup, SDK integration, and connector configuration
affaan-m/ECC
Build a new API connector or provider by matching the target repo's existing integration pattern exactly.
ruvnet/ruflo
Register a Cognitum Seed device by endpoint and establish agent bridge
elastic/kibana
Generate or repair a Scout test scaffold for a Kibana plugin/package (test/scout/{api,ui} Playwright configs, fixtures, example specs).
joeltelling/print-farm-manager
Finishing pass for any Print Farm Manager change. An agent skill from joeltelling/print-farm-manager.
joeltelling/print-farm-manager
Review a community pull request against Print Farm Manager's specific failure modes: adjacent-code drift, part-count integrity, driver contract compliance, docs completeness.
Scaffold, register, test, and document a new printer brand driver (connector) end to end. Add Connector is an agent skill from joeltelling/print-farm-manager. Scaffold, register, test, and document a new printer brand driver (connector) end to end.
Add Connector fits situations like: adding support for a new printer brand; reviewing a community driver PR for completeness.
Run `npx skills add joeltelling/print-farm-manager --skill add-connector -a claude-code`. Or copy the skill folder (.claude/skills/add-connector in joeltelling/print-farm-manager) into .claude/skills/add-connector in your project. Claude Code loads it when a task matches its description.
Run `npx skills add joeltelling/print-farm-manager --skill add-connector -a codex`. Or copy the skill folder (.claude/skills/add-connector in joeltelling/print-farm-manager) into .agents/skills/add-connector in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add joeltelling/print-farm-manager --skill add-connector -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-connector, .gemini/skills/add-connector, .github/skills/add-connector and .opencode/skills/add-connector in your project.
Going by SKILL.md and its folder, Add Connector needs the command-line tools its instructions call (npm).
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Add Connector is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Add Connector: Scaffolding (dotnet/efcore, 15k stars), Scaffold Element (remotion-dev/remotion, 63k stars), Power Apps Code App Scaffold (github/awesome-copilot, 40k stars) and API Connector Builder (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
joeltelling (a GitHub user) maintains it in joeltelling/print-farm-manager, which has 208 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 6, 2026.
Source: joeltelling/print-farm-manager on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.