Options
asgeirtj/system_prompts_leaks
Present multiple design options as a vertical stack of anchored turns
Write and fix circuits in CircuitJS1's text format — the $ options header, element lines on a 16-px grid, scope o lines, slider 38 lines, layout rules, and the workflow that keeps the pane moving.
$ npx skills add autonomous-ai/openharness --skill circuitjs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install autonomous-ai/openharness circuitjs --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/autonomous-ai/openharness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/store/agents/circuitjs/skills/circuitjs .claude/skills/circuitjs && 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 "circuitjs" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/circuitjs/skills/circuitjs into .claude/skills/circuitjs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "circuitjs", 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/autonomous-ai/openharness/tree/main/store/agents/circuitjs/skills/circuitjsType 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 autonomous-ai/openharness --skill circuitjs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install autonomous-ai/openharness circuitjs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/store/agents/circuitjs/skills/circuitjs .agents/skills/circuitjs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "circuitjs" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/circuitjs/skills/circuitjs into .agents/skills/circuitjs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "circuitjs", 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 autonomous-ai/openharness --skill circuitjs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install autonomous-ai/openharness circuitjs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/store/agents/circuitjs/skills/circuitjs .cursor/skills/circuitjs && 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 "circuitjs" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/circuitjs/skills/circuitjs into .cursor/skills/circuitjs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "circuitjs", 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/autonomous-ai/openharness.git --path store/agents/circuitjs/skills/circuitjs--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 autonomous-ai/openharness --skill circuitjs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install autonomous-ai/openharness circuitjs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/store/agents/circuitjs/skills/circuitjs .gemini/skills/circuitjs && 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 "circuitjs" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/circuitjs/skills/circuitjs into .gemini/skills/circuitjs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "circuitjs", 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 autonomous-ai/openharness circuitjsInstalls 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 autonomous-ai/openharness --skill circuitjs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .github/skills && cp -r skills-src/store/agents/circuitjs/skills/circuitjs .github/skills/circuitjs && 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 "circuitjs" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/circuitjs/skills/circuitjs into .github/skills/circuitjs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "circuitjs", 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 autonomous-ai/openharness --skill circuitjs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install autonomous-ai/openharness circuitjs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/store/agents/circuitjs/skills/circuitjs .opencode/skills/circuitjs && 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 "circuitjs" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/circuitjs/skills/circuitjs into .opencode/skills/circuitjs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "circuitjs", 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.
circuitjsWrite and fix circuits in CircuitJS1's text format — the $ options header, element lines on a 16-px grid, scope o lines, slider 38 lines, layout rules, and the workflow that keeps the pane moving.
Circuitjs is an agent skill from autonomous-ai/openharness. Write and fix circuits in CircuitJS1's text format — the $ options header, element lines on a 16-px grid, scope o lines, slider 38 lines, layout rules, and the workflow that keeps the pane moving. Use this for every circuit in this workspace, whether writing a new circuit.txt, editing one, or reading the verdict's findings.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files (for example `examples/README.md`).
The repository describes itself as: The ultimate harness for coding agents and beyond. All your agents. All your machines. One command center. Start with code, then follow your curiosity and build across… The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 74c2733. 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:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Circuitjs loads about 3.2k tokens when it runs. Until then it costs about 86 tokens; SKILL.md has 1,938 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 autonomous-ai/openharness at commit 74c2733, republished under its MIT licence (© autonomous-ai). 1,938 words, ~3,176 tokens.
.claude/skills/circuitjs/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.A circuit is one plain-text file. Each line is either the options header, one element, one scope, or
one slider. That is the whole format. CircuitJS1 reads it with a tokenizer that splits on spaces and
gives up on a line it cannot make sense of, so a wrong field is a missing element, not an error
message — which is why verdict.py exists.
$ 1 0.000005 10.20027730826997 50 5 43 5e-11
v 176 224 176 112 0 1 40 5 0 0 0.5
r 176 112 336 112 0 1000
c 336 112 336 224 0 0.00001 0
w 176 224 336 224 0
g 176 224 176 256 0
o 2 64 0 2 5 0.0125That is a working RC low-pass: a 5 V sine into 1 kΩ, across 10 µF, with the capacitor on the scope. Everything else is more of the same.
$ options headerOne line, first, always.
$ <flags> <maxTimeStep> <iterations> <currentSpeed> <voltageRange> [<powerBrightness> <minTimeStep>]| Field | What it does | Sane value |
|---|---|---|
flags | 1 show current dots, 2 small (8-px) grid, 4 hide voltage colour, 8 show power, 16 hide values, 64 adaptive timestep, 128 auto-DC on reset | 1 |
maxTimeStep | seconds per simulation step | 0.000005 (5 µs) |
iterations | how fast it runs on screen: steps per second ≈ 160 × this. At 5 and a 5 µs step the simulator advances about 4 ms of circuit time per second of wall clock, so a 300 Hz oscillator reads as a ~1 Hz blink | 5 to 10 |
currentSpeed | how fast the charge dots move | 50 |
voltageRange | volts per full colour swing | 5 (or the supply) |
powerBrightness, minTimeStep | optional | 43 5e-11 |
iterations is the dial that makes a circuit watchable. Slow it down (2) for something that
should visibly blink; leave it (10) for a waveform on a scope.
<code> <x1> <y1> <x2> <y2> <flags> [values…]Everything after flags belongs to that element and differs per code. Coordinates are integers on a
16-px grid — CircuitJS1 snaps to it, and two ends that are not on it will not meet.
Elements connect only by sharing a coordinate. There are no net names and no explicit
connections: two posts at exactly the same (x, y) are the same node. Crossing wires that do not
share an endpoint do not touch. w is an ideal wire and exists purely to move a node somewhere else
on the canvas.
| Shape | Posts |
|---|---|
Two-terminal — r c l d z v i w s m p I 162 175 176 181 182 183 187 203 209 216 350 370 374 404 415 422 425 426 | exactly (x1,y1) and (x2,y2) |
One-terminal — g R O L M A n 170 172 200 201 207 210 211 368 408 411 418 424 | (x1,y1) only; (x2,y2) is just which way it points |
Decoration — x b 403 423 | none |
| Everything else (chips, transistors, op-amps, pots, transformers) | at offsets the app computes — see below |
| Code | Element | Fields after flags |
|---|---|---|
w | wire | (none) |
r | resistor | resistance |
c | capacitor | capacitance voltdiff [initialVoltage [seriesResistance]] (the last needs flag 4) |
l | inductor | inductance current [initialCurrent saturationCurrent] |
d | diode | modelName when flag 2 is set (default, zener, 1N4004, led-*); with flags 0 the default silicon diode and no fields |
z | zener | zenerVoltage with flags 0 |
v | voltage source | waveform frequency maxVoltage bias phaseShift dutyCycle |
R | rail (one-terminal source) | same six as v |
g | ground | symbolType (0 normal, 1 chassis, 2 signal, 3 earth) |
s | switch | position momentary [label] — 0/1 or false/true, label needs flag 4 |
O | output (voltmeter label) | scale (0 auto) |
p | probe | meter scale resistance |
162 | LED | diode fields, then red green blue [maxBrightnessCurrent] — 1 0 0 is red |
207 | labeled node | name — every 207 with the same name is the same node, wire-free |
x | text | size escapedText — flags 4, spaces written \s |
170 | sweep source | minF maxF maxV sweepTime |
174 | potentiometer | maxResistance position sliderLabel |
Waveforms for v and R: 0 DC, 1 sine, 2 square, 3 triangle, 4 sawtooth, 5 pulse,
6 noise. frequency is in hertz, maxVoltage is the amplitude, bias the offset, phaseShift
radians, dutyCycle a fraction. A 5 V DC supply is v x1 y1 x2 y2 0 0 40 5 0 0 0.5 — the 40 is a
leftover frequency that DC ignores. Post 0 is (x1,y1), the negative end; post 1 is the positive
end. Look at the examples before inventing a value.
Their pins are not at the line's own ends, so writing the wires around them by hand is the one place this format bites. Two that are worth knowing exactly, both drawn left to right at the default size:
a x1 y1 x2 y2 flags [maxOut minOut gbw v0 v1 gain] — inputs at (x1, y1−16) and
(x1, y1+16), output at (x2, y2). With flags 0 the upper input is the inverting (−) one;
flags 1 swaps them. See examples/amp-invert.txt (flags 0) and examples/amp-noninvert.txt.t x1 y1 x2 y2 flags type vbe vbc beta [model] — type is 1 for NPN and -1
for PNP. Base at (x1, y1); for an NPN with flags 0, collector at (x2, y2−16) and emitter at
(x2, y2+16). flags 1 flips them, and PNP swaps them. beta is usually 100. See
examples/npn.txt.For anything with a body — the 555 (165), counters, gates, flip-flops, transformers, pots — do
not compute the pins. Copy the whole block, chip line and surrounding wires together, out of an
example, and if you need it somewhere else add the same offset to every coordinate in the block. The
verdict will tell you the ends that stopped meeting. template/circuit.txt is exactly this: the 555
and its wires lifted unchanged out of examples/555square.txt, with an LED branch added on the
output node.
oA scope is what makes the pane worth looking at. Put at least one on every circuit.
o <element> <speed> <value> <flags> <scaleV> <scaleA> [position]element is an index, counting only element lines, from 0. The commonest mistake in the whole
format. Insert an element in the middle and every scope below it is watching the wrong thing — so
append new elements at the end rather than inserting, or renumber every o and 38 line.speed — simulation steps per pixel column. 64 is a good default; larger sweeps slower.value — 0 voltage, 3 current, 7 power. For a transistor: 1 Ib, 2 Ic, 4 Vbe, 6 Vce.flags — 1 plot current, 2 plot voltage, 8 show frequency, 256 show minimum, 512 show
the scale, 8192 auto-scale. 3 (both traces) is a good default.scaleV, scaleA — volts and amps per division.position — which stacked slot, from 0.o 2 64 0 3 5 0.0125 reads: watch element 2, 64 steps per column, plot its voltage and current, 5 V
and 12.5 mA per division. Files saved by the app itself set flag 4096 and write a longer,
multi-plot form; both load, and the short one above is the one to write by hand.
38A knob in the app's right-hand column. The user turning it while the sim runs is most of the fun.
38 <element> F<flags> <editItem> <min> <max> <label> <step>element is the same index as a scope's. editItem is which of that element's editable values the
slider drives, from 0 — 0 is the primary one (a resistor's resistance, a capacitor's capacitance).
F0 is plain, F2 logarithmic. Spaces in the label are written \s; step is 0 for a smooth knob.
38 0 F0 0 1 101 Resistance 0 puts a 1 Ω – 101 Ω knob on element 0. See examples/lrc.txt.
No -1 before the label. The app's own export writes a sharedWith field there, but the loader
only reads it when the flags say the knob is shared (F1); after F0 or F2 the -1 becomes the
knob's label and the pane shows a slider called "-1". The verdict warns about it.
h a hint the app shows, ! a custom-logic model, . a composite-subcircuit model, 32 and 34
transistor and diode model definitions. Copy them when you copy a block; do not write them fresh.
The drawing is the explanation, so lay it out the way a schematic is read.
g at the lowest point of the circuit and
run the return wire along the bottom.w rather
than one diagonal.x text, or use 207 labeled nodes instead of long wires
across the canvas.The pane is live: it re-imports circuit.txt on every save without reloading the app, keeping the
simulation running. So save early and often, and let the user watch it grow.
Source and ground first. v (or R), g, and the return wire. Save. Run the verdict. The
pane already shows something running.
Then the circuit proper, one branch at a time, saving after each. Two-terminal parts are the easy path; reach for a chip only when the circuit really is one.
Then a scope on the output node, and a slider on the value worth turning. Say in one line which knob you gave them.
Run the verdict after every save:
python3 "$CIRCUITJS_TOOLCHAIN/verdict.py" # circuit.txt
python3 "$CIRCUITJS_TOOLCHAIN/verdict.py" other.txtErrors mean CircuitJS1 will drop a line: an unknown code, a truncated element, a scope pointing
past the last element. Fix those. Warnings are usually real too — a floating end is a part that
is not in the circuit, an off-grid coordinate is two ends that look joined and are not. An
open_end info on a circuit that contains a chip or a transistor is expected: that end is a
pin the checker cannot see.
Never write the XML dump. exportCircuit() in the app returns XML; this workspace is the
text format, which the app still reads and a human can still edit.
Use kept Scope Lab captures as feedback. The pane can run an isolated native copy, record
node voltage or component voltage/current, overlay another take, and keep exact circuits,
CSV/JSON samples, a trace and notes under .harness/circuit-captures/<id>/. Read the selected
packet before revising the circuit; in-pane changes may differ from the source. Edit the
original plain-text file and preserve the packet. Its native XML is for simulator import,
not a replacement workspace format. Keep node names and element indices stable for comparison.
Treat measurements as sampled simulation results, with the recorded timestep and duration;
a new capture has its own time origin and can have different initial transients.
| What you see | Usually |
|---|---|
| A part is missing from the pane | its line had a bad field and the loader skipped it; check the field count against the table |
| Two parts look joined but nothing flows | their ends differ by a few pixels, or one is off the grid |
| "Capacitor loop with no resistance" or a hang | add a small series resistance, or a resistor in the loop |
| Everything reads 0 V | no ground: add a g, or the source's negative end is not the reference |
| The scope is flat | it is watching the wrong element index — count the element lines again |
| It runs far too fast or slow to see | change iterations in the $ line, not the circuit |
examples/ holds eight of CircuitJS1's own circuits, unchanged (GPL-2.0, © Paul Falstad and Iain
Sharp) — see examples/README.md for what each one is worth reading for. The installed app has all
373 in its Circuits menu; open one in the pane, poke at it, and copy the lines you want.
© autonomous-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files in store/agents/circuitjs/skills/circuitjs of autonomous-ai/openharness.
Open the folder on GitHubat commit 74c2733
Circuitjs 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 |
|---|---|---|---|---|---|---|
| Circuitjs this skillautonomous-ai/openharness | 1.2k | — | ~3.2k | Automated safety check: Pass | MIT | |
| Optionsasgeirtj/system_prompts_leaks | 69k | — | ~918 | Automated safety check: Pass | CC0-1.0 | |
| Options Strategy BacktestingHKUDS/Vibe-Trading | 35k | — | ~2k | Automated safety check: Pass | MIT | |
| Remove Option Or Flaggetsentry/sentry | 46k | — | ~3k | Automated safety check: Pass | Custom licence | |
| Options PayoffHKUDS/Vibe-Trading | 35k | — | ~6.8k | Automated safety check: Pass | MIT | |
| Add CLI Optionremotion-dev/remotion | 63k | — | ~1.5k | Automated safety check: Pass | Custom licence |
asgeirtj/system_prompts_leaks
Present multiple design options as a vertical stack of anchored turns
HKUDS/Vibe-Trading
Backtests multi-leg option strategies by synthesizing Black-Scholes prices from the underlying, simulating PnL, Greeks exposure and expiration for crypto and equity options.
getsentry/sentry
Remove a Sentry option or FlagPole feature flag whose rollout is finished, in the correct PR order across sentry, getsentry, and sentry-options-automator.
HKUDS/Vibe-Trading
Option P&L analysis methodology: payoff diagrams, breakeven calculation, multi-leg strategy visualization, and Greeks-based scenario analysis.
remotion-dev/remotion
Add a new Remotion CLI or config option by creating an AnyRemotionOption, registering CLI parsing, wiring config setters, and updating documentation.
biomejs/biome
A skill your agent uses when biome migrate eslint must preserve configurable ESLint rule options through source-option models, Biome conversions, typed rule variants, and migration fixtures.
autonomous-ai/openharness
Slices 3D mesh files into printer-profiled plain G-code through real slicer CLIs, with backend discovery, input inspection, dry runs and static validation.
autonomous-ai/openharness
Turns a home-automation request into standard, testable automations.yaml, run against Home Assistant Core's real triggers and verified with its own trace tool.
autonomous-ai/openharness
Turns a musical brief into LilyPond concert-pitch music, checked parts for each instrument and a playable practice pack.
autonomous-ai/openharness
Turns an STL and explicit printer and material requirements into compared OrcaSlicer plans, an editable 3MF project, checked G-code and a portable handoff.
autonomous-ai/openharness
Builds an editable DOCX report, a formula-driven XLSX workbook and a fresh LibreOffice PDF preview from one structured source file, then checks them together.
autonomous-ai/openharness
Dry-run, upload, and cautiously initiate local Bambu Lab print jobs from validated plain .gcode, using Bambu LAN FTPS/MQTT handoffs.
Write and fix circuits in CircuitJS1's text format — the $ options header, element lines on a 16-px grid, scope o lines, slider 38 lines, layout rules, and the workflow that keeps the pane moving. Circuitjs is an agent skill from autonomous-ai/openharness. Write and fix circuits in CircuitJS1's text format — the $ options header, element lines on a 16-px grid, scope o lines, slider 38 lines, layout rules, and the workflow that keeps the pane moving.
Run `npx skills add autonomous-ai/openharness --skill circuitjs -a claude-code`. Or copy the skill folder (store/agents/circuitjs/skills/circuitjs in autonomous-ai/openharness) into .claude/skills/circuitjs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add autonomous-ai/openharness --skill circuitjs -a codex`. Or copy the skill folder (store/agents/circuitjs/skills/circuitjs in autonomous-ai/openharness) into .agents/skills/circuitjs 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 autonomous-ai/openharness --skill circuitjs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/circuitjs, .gemini/skills/circuitjs, .github/skills/circuitjs and .opencode/skills/circuitjs in your project.
Going by SKILL.md and its folder, Circuitjs needs the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Circuitjs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k 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 Circuitjs: Options (asgeirtj/system_prompts_leaks, 69k stars), Options Strategy Backtesting (HKUDS/Vibe-Trading, 35k stars), Remove Option Or Flag (getsentry/sentry, 46k stars) and Options Payoff (HKUDS/Vibe-Trading, 35k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
autonomous-ai (a GitHub organization) maintains it in autonomous-ai/openharness, which has 1,194 GitHub stars. The repository holds 99 skills in this directory. The repository was last updated on October 9, 2026.
Source: autonomous-ai/openharness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.