Agent skill

Engineering Conventions

by ZaxbyHub in ZaxbyHub/opencode-swarm

Guidelines and non-negotiable engineering invariants for modifying opencode-swarm.

MITAuto-check passedAgent Workflows

Install Engineering Conventions

skills CLI
$ npx skills add ZaxbyHub/opencode-swarm --skill engineering-conventions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ZaxbyHub/opencode-swarm engineering-conventions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ZaxbyHub/opencode-swarm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/engineering-conventions .claude/skills/engineering-conventions && rm -rf skills-src

Use ~/.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/

Facts

Skill name
engineering-conventions
GitHub stars
494
Token cost
~4.7k tokens
SKILL.md length
2,278 words
Files
1
Skills in repo
91
Repo updated
First seen
Licence
MIT

At a glance

Guidelines and non-negotiable engineering invariants for modifying opencode-swarm.

  • Works in 4 steps: Plugin initialization is bounded and… → Subprocesses are bounded,… → Runtime portability — Node-ESM-loadable… → …
  • Tasks that involve State management
  • SKILL.md covers When to load this skill, Highest-risk invariants (the…, Cross-link: writing tests and Hard warning: do NOT use broad…, plus 7 more sections
  • Calls bun, node and git

What it does

Engineering Conventions is an agent skill from ZaxbyHub/opencode-swarm. Guidelines and non-negotiable engineering invariants for modifying opencode-swarm. Load before architecture, plugin initialization, subprocess, tool registration, plan durability, .swarm storage, runtime portability, session/global state, guardrails/retry, chat/system message hooks, or release/cache changes. Authoritative source: AGENTS.md at the repo root and docs/engineering-invariants.md.

Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering State management, Agent instruction files and LLM guardrails. The repository describes itself as: Architect-centric agentic swarm plugin for OpenCode. Hub-and-spoke orchestration with SME consultation, code generation, and QA review. The licence is MIT.

When your agent uses it

  • Tasks that involve State management
  • Tasks that involve Agent instruction files
  • Tasks that involve LLM guardrails

Example prompts

  • “Use the engineering-conventions skill to guideline and non-negotiable engineering invariants for modifying opencode-swarm”
  • “/engineering-conventions”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Plugin initialization is bounded and fail-open. Every awaited operation on the plugin-init path must be wrapped in withTimeout(...) and…
  2. Subprocesses are bounded, non-interactive, and killable. Every bunSpawn(['', ...]) call must pass cwd, stdin: 'ignore' (unless…
  3. Runtime portability — Node-ESM-loadable + v1 plugin shape. No top-level bun: imports in dist/index.js. Default export is { id, server }…
  4. Test mock isolation. mock.module(...) leaks across files in Bun's shared test-runner process. Use a file-scoped _internals…

What it can do on your machine

Read from SKILL.md and the folder at commit b63a4bd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • bun
    • node
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Engineering Conventions loads about 4.7k tokens when it runs. Until then it costs about 105 tokens; SKILL.md has 2,278 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~105
When it runs · the whole SKILL.md, loaded when a task matches
~4.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from ZaxbyHub/opencode-swarm at commit b63a4bd, republished under its MIT licence (© ZaxbyHub). 2,278 words, ~4,735 tokens.

Download SKILL.mdSave it as .claude/skills/engineering-conventions/SKILL.md (or your agent's skills folder).
name
engineering-conventions
description
Guidelines and non-negotiable engineering invariants for modifying opencode-swarm. Load before architecture, plugin initialization, subprocess, tool registration, plan durability, .swarm storage, runtime portability, session/global state, guardrails/retry, chat/system message hooks, or release/cache changes. Authoritative source: AGENTS.md at the repo root and docs/engineering-invariants.md.
audience
swarm-plugin
effort
medium

Engineering Conventions for opencode-swarm (Claude Code)

Authoritative source: AGENTS.md at the repo root and docs/engineering-invariants.md. This skill is a pointer + summary so Claude Code loads the right invariants before touching dangerous areas. Read AGENTS.md first. When this skill conflicts with AGENTS.md, AGENTS.md wins.

When to load this skill

Before changing shared/exported or runtime-contract code, use repo_map impact_cone to identify likely consumers, then verify them in direct source. Graph evidence is advisory only. If freshness is stale or inconclusive, confidence is low, source is missing, the language is unsupported/dynamic, the graph is absent, or the action fails, rely on direct source, searches, and executable evidence.

Load this skill before beginning implementation work that touches any of:

  • src/index.ts (plugin entry / initializeOpenCodeSwarm)
  • src/hooks/* (any hook that may run during init or QA review)
  • src/tools/* (tool registration, working-directory anchoring, test_runner)
  • src/utils/bun-compat.ts (subprocess shim — every spawn in the repo eventually flows through here)
  • src/utils/timeout.ts (the withTimeout primitive used by every bounded init step)
  • src/utils/gitignore-warning.ts (Git hygiene; runs on plugin init path)
  • package.json, build configuration, dist/, plugin export shape
  • Plan ledger / projection / checkpoint code (src/plan/*, .swarm/plan-*)
  • Session / guardrails / runtime state (src/state.ts, src/hooks/guardrails.ts)
  • Tests involving subprocesses, plugin startup, mock.module, or temp directories

If you are not sure whether you are touching one of these, you are touching one of these.

Highest-risk invariants (the ones that have already shipped regressions)

The full list of 12 invariants is in AGENTS.md. The four that have caused the most recent production regressions:

  1. Plugin initialization is bounded and fail-open. Every awaited operation on the plugin-init path must be wrapped in withTimeout(...) and degrade non-fatally on timeout. Issue #704 (v7.0.3), the v7.3.3 git-hygiene regression, and PR #1920's merge-queue smoke failure all came from violating this. The OpenCode plugin host silently drops a plugin whose entry never resolves; users see "no agents in TUI / GUI" with no error. Bounded ≠ free: withTimeout only stops an unbounded hang — awaited work's real latency still counts toward the ~400 ms repro-704 init deadline. If init work does non-trivial I/O and nothing downstream needs it before server() resolves, register it in the wrapper-owned post-resolution task queue (the repoGraphHook precedent; PR #1356's bundled-skill sync is the exemplar), don't await it or use queueMicrotask inside the initializer; await only fast (<~50 ms) work a later init step depends on. Linux/macOS repro-704 green does not prove Windows — the smoke matrix enforces the 400 ms T1 deadline on the Windows runner, where cold-FS latency is several× higher.
  2. Subprocesses are bounded, non-interactive, and killable. Every bunSpawn(['<bin>', ...]) call must pass cwd, stdin: 'ignore' (unless intentionally interactive), timeout: <ms>, bounded stdio, and call proc.kill() in a finally. An outer withTimeout is not enough — it lets the awaiter proceed but does not abort the child.
  3. Runtime portability — Node-ESM-loadable + v1 plugin shape. No top-level bun: imports in dist/index.js. Default export is { id, server }. All Bun.* calls go through src/utils/bun-compat.ts. v6.86.8 / v6.86.9 are the cautionary tales.
  4. Test mock isolation. mock.module(...) leaks across files in Bun's shared test-runner process. Use a file-scoped _internals dependency-injection seam (see src/utils/gitignore-warning.ts:_internals and src/hooks/diff-scope.ts:_internals) instead. Restore in afterEach. The writing-tests skill covers this in detail; load it before modifying tests.

For test changes, also load .claude/skills/writing-tests/SKILL.md. It covers bun:test API, mock isolation rules, CI per-file isolation, and cross-platform anti-patterns.

Hard warning: do NOT use broad test_runner for repo validation

The OpenCode test_runner tool is for targeted agent validation with explicit files: [...] or small targeted scopes. It is not the way to validate the full repo from inside a Claude Code session that orchestrates OpenCode. In this repo:

  • MAX_SAFE_TEST_FILES = 50 (src/tools/test-runner.ts). Resolutions exceeding this return outcome: 'scope_exceeded' with a SKIP. Do not lean on this — broad scopes can stall or kill OpenCode before that guard fires.
  • For repo validation, run the shell commands in contributing.md / TESTING.md directly (per-file isolation loops + tier orchestration).
  • scope: 'all' is gated behind the SWARM_ALLOW_FULL_SUITE=1 env var (intended for opt-in CI mirrors only); there is no allow_full_suite arg. Default to files: [...] instead.

Agent prompt strings — escaping pitfalls

Agent prompts in src/agents/*.ts are large TypeScript template literals. They frequently contain characters that have special meaning inside template literals and cause silent parse errors if unescaped:

CharacterInside template literalCorrect escape
Backtick `Terminates the literal\` (single backslash — renders as ` in output)
${Starts an interpolation\${ (single backslash)
Literal backslash \Consumed by escape processing\\ (double backslash renders as \ in output)

The most common failure pattern: A coder adds an inline code example containing backticks to an agent prompt string. The unescaped backtick silently terminates the template literal, producing a SyntaxError: Unexpected identifier or Unexpected token at the character after the backtick — which appears unrelated to the actual cause.

typescript
// WRONG — unescaped backtick terminates the template literal
const PROMPT = `
Use `bun:test` for all tests.   // ← bare backtick before "bun" closes the literal
`;

// CORRECT — single backslash before each backtick; renders as Use `bun:test` in output
const PROMPT = `
Use \`bun:test\` for all tests.
`;

// OVER-ESCAPED (also wrong) — triple backslash produces literal \` in the rendered prompt
const PROMPT = `
Use \\\`bun:test\\\` for all tests.  // renders as: Use \`bun:test\` (backslashes visible)
`;

Detection: If bun run build or bun --smol test reports a parse error at a line number that seems far from any recent change, search the surrounding lines for an unescaped backtick inside a template literal.

Prevention: After adding any inline code example to an agent prompt, run bun run build immediately — the TypeScript compiler catches unescaped backticks as a syntax error before any tests run.

The invariant-audit gate (PR-time)

Every PR that touches a relevant area must include an ## Invariant audit section in its description. The format is in AGENTS.md ("Invariant audit required in PRs"). The commit-pr skill enforces this gate before push/PR — load it before committing.

If you cannot prove a touched invariant from source and test output, do not push.

Evidence file flow (.swarm/evidence/{taskId}.json)

Agents NEVER write these files directly. The delegation-gate hook writes them automatically after each reviewer/test_engineer Task delegation returns. The schema is defined in src/gate-evidence.ts:

typescript
export interface GateEvidence {
  sessionId: string;  // actual session ID from the Task delegation
  timestamp: string;  // ISO 8601
  agent: string;     // 'reviewer' | 'test_engineer' | 'sme' | etc.
}

export interface TaskEvidence {
  taskId: string;
  required_gates: string[];
  gates: Record<string, GateEvidence>;
  turbo?: boolean;
}

How to verify the flow is working:

  1. After dispatching a reviewer/test_engineer Task, the delegation-gate toolAfter hook should automatically write/update .swarm/evidence/{taskId}.json.
  2. When you call update_task_status(completed), the tool reads the evidence file and verifies the required_gates are all present.
  3. If update_task_status fails with "required QA gates not yet satisfied" or "Evidence file is corrupt or unreadable," inspect the evidence file with cat .swarm/evidence/{taskId}.json to diagnose.

Do NOT manually write or fabricate evidence files. This bypasses the gate enforcement and can cause downstream tool failures when the real session IDs are looked up.

When to suspect the flow is broken:

  • The evidence file doesn't exist after a reviewer/test_engineer Task delegation returns
  • The evidence file exists but has wrong agent or sessionId values
  • The plan has newly-added task IDs that the hook may not recognize

Workaround for broken flow: If the hook consistently fails to write the evidence file, escalate to the user — do NOT silently fabricate evidence with placeholder session IDs. The gate check exists to enforce that a real review/test run happened.

See .claude/skills/writing-tests/SKILL.md § Cross-Platform Requirements → "macOS rename-visibility race" for the ENONENT retry pattern that this gate flow triggers on macOS CI.

Init-path-safe imports (invariant 1 deep-dive)

The most expensive invariant-1 violations come from transitive import chains that silently load heavy modules (WASM, tree-sitter) at plugin init time. A single import { X } from '../../lang' in a tool-time module can transitively load runtime.ts → web-tree-sitter (heavy WASM), spiking init latency well past the repro-704 T1 deadline (observed during issue #1471 development).

The lang barrel trap

src/lang/index.ts re-exports from ./runtime, which statically imports web-tree-sitter. Importing anything from the barrel (from '../../lang') transitively loads WASM at module-eval time.

Wrong: import { LANGUAGE_REGISTRY } from '../../lang' — loads runtime → web-tree-sitter. Right: import { LANGUAGE_REGISTRY } from '../../lang/profiles' — loads only profiles (string data, no WASM).

Type-only vs value imports
  • import type { Query } from 'web-tree-sitter' — safe (erased at compile time, no module load).
  • import { Query } from 'web-tree-sitter' — unsafe on the init path (loads the WASM module).
  • For value dependencies on heavy modules in init-reachable code, use dynamic import() inside an async function (deferred to first call, not module load).
The --external build flag

Dynamic import('web-tree-sitter') only defers loading at runtime if --external web-tree-sitter is set in the bun build config. Without it, bun bundles web-tree-sitter inline and the dynamic import resolves from the bundle (no deferral). Check package.json build scripts for the flag.

Verification checklist

For any import-chain change touching src/lang/, runtime, or web-tree-sitter:

  1. Trace the transitive chain from src/index.ts to verify no heavy module loads at init.
  2. Rebuild dist: bun run build (stale dist gives false regressions).
  3. Run node scripts/repro-704.mjs — T1 must be under 400ms.
  4. Run bun --smol test tests/unit/lang/symbol-graph-init-purity.test.ts — init-path purity tests must pass.
Show full SKILL.md (915 more words)Show less

Sandbox env overrides (subprocess-safety deep-dive)

When a sandbox executor (src/sandbox/{linux,macos,win32}/*.ts) interpolates environment variables into a sandbox profile, a bwrap rule, or a PowerShell -EnvironmentVariables block, the following rules apply. They exist because a future shell-injection regression in any new sandbox path is a security vulnerability, not just a bug:

  • Keys must match POSIX env-var name syntax. Every env key must be validated against /^[A-Za-z_][A-Za-z0-9_]*$/ (a leading letter or underscore, then letters/digits/underscores) before being interpolated. Define or reuse a single isValidEnvKey(key: string): boolean helper colocated with the SandboxExecutor interface in src/sandbox/executor.ts (around line 24+); do not duplicate the regex inline at every call site. Keys that fail validation must be silently dropped (not raised) so that one bad caller cannot wedge the sandbox path — but the drop must be observable in pendingAdvisoryMessages or a structured log, never silent.
  • Values must be shell-quoted or treated as opaque single tokens. On POSIX, prepend a leading single quote, escape embedded ' by replacing with '\'', then append a trailing single quote. On Windows PowerShell, prefer single-quoted literal contexts (e.g. '$env:NAME') and run values through a psStringEscape-style helper that escapes backtick, $, ", and ` (the special characters in double-quoted PowerShell strings). Single-quoted PowerShell strings are literal — only ' needs escaping, doubling it to ''. If a context requires double-quoted PS values, escape embedded " as `, backtick as , and `$` as `` (backtick is the PS escape character in double-quoted strings;$must be escaped to prevent variable expansion). On bwrap, always pass values as separate argv tokens after the--setenv flag (--setenv KEY VALUE, two tokens), never as a single concatenated KEY=VALUE` token that an intermediate shell would interpret.
  • Use array-form argv for every sandbox subprocess. Never shell:-interpolate. The same invariant-3 rules (array-form spawn, stdin: 'ignore', cwd, timeout, proc.kill() in finally) apply to sandbox spawns as to any other subprocess — see subprocess-safety cross-link.

Sandbox fallback parity (Windows and Linux)

sandbox/{linux,macos,win32}/*.ts has primary executors plus legacy fallbacks: Windows NativeWindowsSandboxExecutor with RestrictedEnvironmentExecutor / PowerShell wrapper, Linux BubblewrapSandboxExecutor with no-sandbox fallback. When you modify any of the following on the primary executor, update the fallback path in the same change to keep behavior parity and add a parity test:

  • getEnvOverrides signature or merge semantics.
  • wrapCommand scoping rules (allowed roots, read-only mounts, temp-dir allocation).
  • isAvailable() / capability probe logic.
  • Failure-mode handling (does a missing sandbox envelope hard-fail or soft-fail to env-only isolation?).
  • Scope-materialization for lane-scoped resources.

A divergence between primary and fallback that is not exercised by a parity test is a regression. The existing per-OS test files tests/unit/sandbox/{linux,macos,win32}.test.ts must continue to cover both the primary and fallback paths after every env-affecting change — extend these tests rather than relying on dedicated sandbox-envoverride test files that may or may not exist in your branch.

SAST baseline capturing (differential scanning)

The sast_scan tool supports capture_baseline: true with a phase parameter to snapshot pre-existing findings. Subsequent scans with the same phase value perform differential checking — they only fail on new findings, not pre-existing ones.

When to capture a baseline
  • Before Phase 1 code changes. The baseline must reflect the state of the codebase before any new work is done. This ensures the differential scan catches findings introduced by the current session's changes.
Critical safety guard

NEVER capture a baseline after code changes have been made in a phase. A baseline captured post-edit silently encodes the very bugs the scan is meant to catch as "pre-existing," suppressing them indefinitely. This turns the SAST gate into theater.

Baseline capture also requires at least one supported, existing file to be successfully scanned. Omitted, empty, or entirely unscannable changed_files returns capture_baseline requires changed_files to produce a non-empty baseline instead of reporting a successful no-op capture.

Moved findings and audited absorption (#2302)

Every baseline fingerprint carries a position-independent reflow identity (file + rule + flagged-line content). A pre-existing finding whose neighbor lines were edited, or that moved to a new line, is reported as a moved_findings entry on the next diff scan — it never gates. Only findings matching neither the baseline fingerprints nor its reflow identities are NEW.

Re-capturing into an existing baseline with findings that were not in it is BLOCKED unless the capture passes baseline_refresh_rationale — for already-indexed AND first-time-indexed files alike, because the tool cannot distinguish a pre-delegation capture from a failure-response recapture; every absorbed finding then records a who/when/rationale entry in the baseline triage log. This is the audited path for genuinely pre-existing findings (routine per-task captures of first-time files, or findings discovered late after a file rename) — it is NOT a way to make a failed gate go green: recapturing with a rationale after a gate failure means accepting findings that may be coder-introduced. First writes (baseline creation) are snapshots, not absorptions, and stay free.

How to use it
  1. Identify the files to scan. In a phase, use the union of declared task-scope files plus files the coder is expected to touch. Derive the list from declare_scope outputs, git diff --name-only, or the phase's task specs.
  2. Before any coder delegation in Phase 1, capture the baseline:
    sast_scan(directory, changed_files=[...], capture_baseline=true, phase=1)
  3. After coder work, scan the same file set:
    sast_scan(directory, changed_files=[...], phase=1)
    This returns only NEW findings (absent from the baseline).
  4. If a pre-existing finding is legitimately fixed, the baseline can be re-captured at the start of the next phase with the updated file list.
Why this matters

During PR #1704 review, SAST flagged RegExp.prototype.exec() as "command injection via child_process.exec()" — a false positive that blocked the gate. With a baseline captured before the phase, this pre-existing false positive would have been suppressed, and only genuinely new findings would surface.

© ZaxbyHub, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/engineering-conventions of ZaxbyHub/opencode-swarm.

Open the folder on GitHubat commit b63a4bd

Compare with similar skills

Engineering Conventions 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.

Engineering Conventions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Engineering Conventions this skillZaxbyHub/opencode-swarm494—~4.7kAutomated safety check: PassMIT
Claude Project Setupmohitagw15856/pm-claude-skills1.4k—~1.2kAutomated safety check: PassMIT
Auto HarnessPacificStudio/openase268—~1.2kAutomated safety check: PassApache-2.0
Megingiard Code Reviewstormpanda/megingiard155—~2.9kAutomated safety check: PassCustom licence
Openclaw Workspacewin4r/openclaw-workspace288—~2.4kAutomated safety check: PassNone
Clawmemyoloshii/ClawMem210—~7.5kAutomated safety check: PassMIT

Similar skills

  • Claude Project Setup

    mohitagw15856/pm-claude-skills

    Set up a repo or project so an AI coding agent works well in it — the CLAUDE.md, the context, the guardrails, and the conventions the agent needs to be useful instead of lost.

    1.4k GitHub stars~1.2k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Auto Harness

    PacificStudio/openase

    Diagnose and strengthen a repository's harness layer: AGENTS.md rules, knowledge layout, architecture boundaries, lint and type gates, API and generated-client contracts, test scaffolding…

    268 GitHub stars~1.2k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Megingiard Code Review

    stormpanda/megingiard

    Conduct a thorough code review of the current Git branch or specific files in Megingiard.

    155 GitHub stars~2.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Openclaw Workspace

    win4r/openclaw-workspace

    A skill your agent uses when maintaining or optimizing OpenClaw workspace files — AGENTS.md, TOOLS.md, SOUL.md, USER.md, IDENTITY.md, HEARTBEAT.md, BOOT.md, MEMORY.md, and related checklists and…

    288 GitHub stars~2.4k tokensUpdated 7 mo ago
    Agent WorkflowsAuto-check passed
  • Clawmem

    yoloshii/ClawMem

    ClawMem operational reference for agents at query time — the 3-rule escalation gate, MCP tool routing, the 4 query-optimization levers, pipeline behavior (query vs intentsearch), composite scoring…

    210 GitHub stars~7.5k tokensUpdated 5 days ago
    Agent WorkflowsAuto-check passed
  • AI Bom

    cdxgen/cdxgen

    Generates AI-BOM, MCP inventory, AI skill inventory, and AI authorship provenance documents with cdxgen, cataloging models, inference services, Hugging Face purls, MCP servers and their…

    1.1k GitHub stars~2.5k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from ZaxbyHub/opencode-swarm

All 91 skills in this repo
  • Codebase Review Swarm

    ZaxbyHub/opencode-swarm

    Runs an evidence-gated, quote-grounded audit of a codebase for security, QA, accessibility, performance and more, and writes a verified report without changing source files.

    494 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Issue Tracer

    ZaxbyHub/opencode-swarm

    Drives a bug report from validation and root-cause tracing through a critic-reviewed plan, an approved minimal fix and a PR-ready closure, never merging without recorded human approval.

    494 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Commit and PR Publishing for Codex

    ZaxbyHub/opencode-swarm

    Codex adapter for opencode-swarm that governs commits, pushes, draft PRs, PR body updates and CI closeout, deferring to the repo's canonical commit-pr protocol.

    494 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Durable Session State

    ZaxbyHub/opencode-swarm

    Keeps plans, decisions, evidence and reviewer verdicts in small files so long multi-phase tasks survive context compaction and session resumes.

    494 GitHub stars~896 tokensUpdated today
    Auto-check passed
  • Swarm PR Feedback Closer

    ZaxbyHub/opencode-swarm

    Ingests existing pull request feedback such as review comments and CI failures, verifies each claim, fixes confirmed issues and reports closure status for every item.

    494 GitHub stars~14k tokensUpdated today
    Auto-check passed
  • Swarm PR Subscribe

    ZaxbyHub/opencode-swarm

    Monitor a pull request after creation and act autonomously on pushed PR activity.

    494 GitHub stars~2.2k tokensUpdated today
    Auto-check passed

Questions about Engineering Conventions

What does Engineering Conventions do?

Guidelines and non-negotiable engineering invariants for modifying opencode-swarm. Engineering Conventions is an agent skill from ZaxbyHub/opencode-swarm. Guidelines and non-negotiable engineering invariants for modifying opencode-swarm.

When should I use Engineering Conventions?

Engineering Conventions fits situations like: tasks that involve State management; tasks that involve Agent instruction files; tasks that involve LLM guardrails.

How do I install Engineering Conventions in Claude Code?

Run `npx skills add ZaxbyHub/opencode-swarm --skill engineering-conventions -a claude-code`. Or copy the skill folder (.claude/skills/engineering-conventions in ZaxbyHub/opencode-swarm) into .claude/skills/engineering-conventions in your project. Claude Code loads it when a task matches its description.

How do I install Engineering Conventions in Codex?

Run `npx skills add ZaxbyHub/opencode-swarm --skill engineering-conventions -a codex`. Or copy the skill folder (.claude/skills/engineering-conventions in ZaxbyHub/opencode-swarm) into .agents/skills/engineering-conventions in your project. Codex loads it when a task matches its description.

Can I use Engineering Conventions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ZaxbyHub/opencode-swarm --skill engineering-conventions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/engineering-conventions, .gemini/skills/engineering-conventions, .github/skills/engineering-conventions and .opencode/skills/engineering-conventions in your project.

What does Engineering Conventions need to run?

Going by SKILL.md and its folder, Engineering Conventions needs the command-line tools its instructions call (bun, node and git).

Does Engineering Conventions access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Engineering Conventions safe to install?

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.

What licence does Engineering Conventions use?

Engineering Conventions is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Engineering Conventions use?

About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Engineering Conventions?

Skills that share tags, products or a category with Engineering Conventions: Claude Project Setup (mohitagw15856/pm-claude-skills, 1.4k stars), Auto Harness (PacificStudio/openase, 268 stars), Megingiard Code Review (stormpanda/megingiard, 155 stars) and Openclaw Workspace (win4r/openclaw-workspace, 288 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Engineering Conventions?

ZaxbyHub (a GitHub organization) maintains it in ZaxbyHub/opencode-swarm, which has 494 GitHub stars. The repository holds 91 skills in this directory. The repository was last updated on October 10, 2026.

Source: ZaxbyHub/opencode-swarm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.