Agent skill

Curves And Paths

by autonomous-ai in autonomous-ai/openharness

A skill your agent uses when working with curves and paths in Phaser 4.

MITAuto-check passed

Install Curves And Paths

skills CLI
$ npx skills add autonomous-ai/openharness --skill curves-and-paths -a claude-code

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

GitHub CLI
$ gh skill install autonomous-ai/openharness curves-and-paths --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/autonomous-ai/openharness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/store/agents/phaser/skills/curves-and-paths .claude/skills/curves-and-paths && 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
curves-and-paths
GitHub stars
1.2k
Token cost
~4.2k tokens
SKILL.md length
1,424 words
Files
1
Skills in repo
100
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when working with curves and paths in Phaser 4.

  • Works in 10 steps: getPoint(t) vs getPointAt(u) on curves.… → Path moveTo creates an inactive curve.… → PathFollower uses a Tween internally.… → …
  • Working with curves and paths in Phaser 4
  • SKILL.md covers Quick Start, Core Concepts, Common Patterns and All Curve Types, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Curves And Paths is an agent skill from autonomous-ai/openharness. Use this skill when working with curves and paths in Phaser 4. Covers splines, bezier curves, lines, ellipses, path followers, and mathematical curve types. Triggers on: curve, path, spline, bezier, path follower.

Its SKILL.md is about 4.2k 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: 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.

When your agent uses it

  • Working with curves and paths in Phaser 4

Example prompts

  • “/curves-and-paths”

Workflow steps

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

  1. getPoint(t) vs getPointAt(u) on curves. getPoint uses the raw curve parameter t, which does not produce evenly spaced points on most curve…
  2. Path moveTo creates an inactive curve. The MoveTo pseudo-curve has active: false and zero length. It only repositions the end point for…
  3. PathFollower uses a Tween internally. The startFollow config is passed to scene.tweens.addCounter(). All tween properties (ease, delay…
  4. PathFollower offset behavior. When positionOnPath: false (default), the follower's current position becomes the offset from the path…
  5. Ellipse angles are in degrees. The constructor and startAngle/endAngle properties accept degrees. Internally they are stored as radians…
  6. closePath vs autoClose. closePath() adds an explicit Line curve from end to start. autoClose = true only affects getPoints() and…
  7. Cached lengths can go stale. getCurveLengths() caches results based on array length only. If you modify a curve's control points, call…
  8. cubicBezierTo parameter order with numbers. When passing numbers: cubicBezierTo(endX, endY, cp1X, cp1Y, cp2X, cp2Y). The end point comes…
  9. Spline needs at least 4 points. The Catmull-Rom interpolation used by Spline works best with 4+ points. With fewer points, the curve may…
  10. Line curve arcLengthDivisions is 1. Unlike other curves (default 100), Line overrides this to 1 since a line is inherently uniform. No…

What it can do on your machine

Read from SKILL.md and the folder at commit cc4983e. 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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).

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

  • Network

    No URLs in SKILL.md.

    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

Curves And Paths loads about 4.2k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 1,424 words of instructions outside code blocks.

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

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 autonomous-ai/openharness at commit cc4983e, republished under its MIT licence (© autonomous-ai). 1,424 words, ~4,202 tokens.

Download SKILL.mdSave it as .claude/skills/curves-and-paths/SKILL.md (or your agent's skills folder).
name
curves-and-paths
description
Use this skill when working with curves and paths in Phaser 4. Covers splines, bezier curves, lines, ellipses, path followers, and mathematical curve types. Triggers on: curve, path, spline, bezier, path follower.

Curves and Paths

Creating paths from curves, getting points along them, drawing them with Graphics, and making sprites follow paths automatically using PathFollower in Phaser 4.

Key source paths: src/curves/, src/curves/path/, src/gameobjects/pathfollower/, src/gameobjects/components/PathFollower.js Related skills: ../sprites-and-images/SKILL.md, ../graphics-and-shapes/SKILL.md, ../tweens/SKILL.md

Quick Start

js
// In a Scene's create() method:

// 1. Create a Path starting at (50, 300)
const path = this.add.path(50, 300);

// 2. Add curves to the path
path.lineTo(200, 100);
path.splineTo([ new Phaser.Math.Vector2(300, 400), new Phaser.Math.Vector2(500, 200) ]);
path.lineTo(700, 300);

// 3. Draw the path using Graphics
const graphics = this.add.graphics();
graphics.lineStyle(2, 0xffffff, 1);
path.draw(graphics, 64);

// 4. Create a PathFollower sprite that moves along the path
const follower = this.add.follower(path, 50, 300, 'ship');
follower.startFollow({
    duration: 5000,
    rotateToPath: true,
    repeat: -1,
    yoyo: true
});

Core Concepts

Path

A Phaser.Curves.Path is a container that combines multiple Curves into one continuous compound curve. Curves in a Path do not need to be connected end-to-end. Only the order of curves affects point calculations along the path.

Created via factory: this.add.path(x, y) where x/y is the starting point.

Key properties:

  • curves -- array of Phaser.Curves.Curve objects in the Path
  • startPoint -- Vector2, the defined starting position
  • autoClose -- boolean, if true getPoints() appends the first point at the end
  • defaultDivisions -- number (default: 12), divisions per curve when calling getPoints()
  • name -- string, empty by default, for developer use
Curves

All curve types extend Phaser.Curves.Curve (the base class). Every curve supports:

  • getPoint(t, out) -- get a point at position t (0-1) based on curve parameterization
  • getPointAt(u, out) -- get a point at position u (0-1) based on arc length (evenly spaced)
  • getPoints(divisions, stepRate, out) -- array of points along the curve
  • getSpacedPoints(divisions, stepRate, out) -- array of equidistant points by arc length
  • getDistancePoints(distance) -- points spaced by pixel distance
  • getLength() -- total arc length in pixels
  • getBounds(out, accuracy) -- bounding Rectangle
  • getTangent(t, out) / getTangentAt(u, out) -- unit tangent vector
  • getStartPoint(out) / getEndPoint(out) -- first/last points
  • getRandomPoint(out) -- random point on the curve
  • draw(graphics, pointsTotal) -- render the curve onto a Graphics object
  • active -- boolean, when false the parent Path skips this curve
PathFollower

A Phaser.GameObjects.PathFollower is a Sprite with the Components.PathFollower mixin. It uses an internal Tween (a number counter from 0 to 1) to advance along a Path each frame.

Created via factory: this.add.follower(path, x, y, texture, frame)

The PathFollower component provides:

  • path -- the Phaser.Curves.Path being followed
  • pathTween -- the internal Tween driving movement
  • pathOffset -- Vector2, offset added to path coordinates
  • pathVector -- Vector2, current position on the path
  • pathDelta -- Vector2, distance traveled since last frame
  • rotateToPath -- boolean, auto-rotate to face path direction
  • pathRotationOffset -- number (degrees), added to auto-rotation

Common Patterns

Creating Paths with Chained Curves

Path has convenience methods that create curves starting from the previous end point:

js
const path = this.add.path(100, 500);

path.lineTo(300, 100);                          // straight line
path.cubicBezierTo(500, 100, 350, 50, 450, 50); // cubic bezier (endX, endY, cp1X, cp1Y, cp2X, cp2Y)
path.quadraticBezierTo(700, 400, 600, 100);     // quadratic bezier (endX, endY, cpX, cpY)
path.splineTo([                                  // spline through points
    new Phaser.Math.Vector2(750, 300),
    new Phaser.Math.Vector2(600, 500)
]);
path.ellipseTo(50, 80, 0, 270, false, 0);       // ellipse arc (xRadius, yRadius, startAngle, endAngle, clockwise, rotation)
path.circleTo(40);                               // shortcut for ellipseTo with equal radii and 0-360

// Jump to a new position without drawing (creates a gap)
path.moveTo(400, 400);
path.lineTo(500, 400);

// Close the path by connecting end to start
path.closePath();
Adding Standalone Curve Objects
js
const path = new Phaser.Curves.Path(0, 0);

// Add pre-constructed curve objects
const line = new Phaser.Curves.Line(new Phaser.Math.Vector2(0, 0), new Phaser.Math.Vector2(200, 200));
path.add(line);

const spline = new Phaser.Curves.Spline([ 200, 200, 300, 100, 400, 300 ]);
path.add(spline);

const ellipse = new Phaser.Curves.Ellipse(400, 300, 100, 60, 0, 360, false, 0);
path.add(ellipse);
Getting Points Along a Path
js
// Array of points (uses defaultDivisions per curve)
const points = path.getPoints();

// With explicit divisions per curve
const detailed = path.getPoints(32);

// Equally spaced points along the entire path
const spaced = path.getSpacedPoints(100);

// Single point at normalized position (0-1)
const midpoint = path.getPoint(0.5);

// Tangent vector at a position
const tangent = path.getTangent(0.5);

// Total path length in pixels
const length = path.getLength();

// Bounding rectangle
const bounds = path.getBounds();
Drawing Paths with Graphics
js
const graphics = this.add.graphics();

// Draw entire path
graphics.lineStyle(2, 0x00ff00, 1);
path.draw(graphics, 64); // 64 = points per curve for smoothness

// Draw individual curves
graphics.lineStyle(1, 0xff0000, 1);
path.curves[0].draw(graphics, 32);

// Draw debug points
const points = path.getSpacedPoints(50);
points.forEach(p => {
    graphics.fillStyle(0xffff00, 1);
    graphics.fillCircle(p.x, p.y, 3);
});
PathFollower Sprite
js
const path = this.add.path(100, 200);
path.lineTo(400, 400);
path.lineTo(700, 200);

// Create follower
const enemy = this.add.follower(path, 100, 200, 'enemy');

// Start following with config
enemy.startFollow({
    duration: 3000,       // ms to traverse path
    positionOnPath: true, // snap to path start position
    rotateToPath: true,   // auto-rotate to face direction
    rotationOffset: 90,   // offset added to auto-rotation (degrees)
    repeat: -1,           // -1 = infinite repeat
    yoyo: true,           // reverse on each repeat
    from: 0,              // start position on path (0-1)
    to: 1,                // end position on path (0-1)
    startAt: 0,           // initial seek position
    ease: 'Sine.easeInOut' // any valid Phaser ease
});

// Control during playback
enemy.pauseFollow();
enemy.resumeFollow();
enemy.stopFollow();
enemy.isFollowing(); // returns boolean

// Change path at runtime
enemy.setPath(newPath);
enemy.setPath(newPath, { duration: 2000 }); // auto-starts

// Set rotation independently
enemy.setRotateToPath(true, 90); // (value, offsetDegrees)
PathFollower with Simple Duration
js
// Shorthand: pass just a duration number
enemy.startFollow(5000);

// Equivalent to:
enemy.startFollow({ duration: 5000 });

All Curve Types

CurveClassConstructor ParamsDescription
LinePhaser.Curves.Line(p0, p1) Vector2 endpoints, or ([x0,y0,x1,y1])Straight line segment between two points
SplinePhaser.Curves.Spline(points) array of Vector2, flat numbers, or nested arraysCatmull-Rom spline through control points
CubicBezierPhaser.Curves.CubicBezier(p0, p1, p2, p3) or ([x0,y0,...x3,y3])Cubic Bezier with start, 2 control points, end
QuadraticBezierPhaser.Curves.QuadraticBezier(p0, p1, p2) or ([x0,y0,...x2,y2])Quadratic Bezier with start, 1 control point, end
EllipsePhaser.Curves.Ellipse(x, y, xRadius, yRadius, startAngle, endAngle, clockwise, rotation) or config objectElliptical arc; angles in degrees; yRadius defaults to xRadius
Ellipse Curve Properties

The Ellipse curve has get/set properties for runtime modification:

  • x, y -- center position
  • xRadius, yRadius -- radii
  • startAngle, endAngle -- in degrees (get/set convert to/from radians internally)
  • clockwise -- boolean
  • rotation -- in radians
  • angle -- rotation in degrees (alternative to rotation)
  • setWidth(value) / setHeight(value) -- sets radius to value/2

API Quick Reference

Path (Phaser.Curves.Path)
APITypeDescription
add(curve)methodAppend any Curve to the path
lineTo(x, y)methodAdd a Line from current end point
splineTo(points)methodAdd a Spline from current end point
cubicBezierTo(x, y, cp1X, cp1Y, cp2X, cp2Y)methodAdd CubicBezier from current end point
quadraticBezierTo(x, y, cpX, cpY)methodAdd QuadraticBezier from current end point
ellipseTo(xR, yR, start, end, cw, rot)methodAdd Ellipse arc from current end point
circleTo(radius, clockwise, rotation)methodShortcut for ellipseTo with equal radii
moveTo(x, y)methodMove end point without drawing (creates gap)
closePath()methodAdd Line from end to start if not already closed
getPoint(t, out)methodPoint at normalized position (0-1) on entire path
getPoints(divisions, stepRate)methodArray of points, divisions per curve
getSpacedPoints(divisions)methodEquidistant points along entire path
getRandomPoint(out)methodRandom point anywhere on the path
getStartPoint(out)methodPath starting point
getEndPoint(out)methodPath ending point
getTangent(t, out)methodUnit tangent vector at position t
getCurveAt(t)methodReturn the Curve at normalized position t
getLength()methodTotal path length in pixels
getCurveLengths()methodArray of cumulative curve lengths
getBounds(out, accuracy)methodBounding Rectangle
draw(graphics, pointsTotal)methodDraw all curves onto a Graphics object
toJSON() / fromJSON(data)methodSerialization
updateArcLengths()methodForce recalculation of cached lengths
destroy()methodClear internal references
Base Curve (Phaser.Curves.Curve)
APITypeDescription
getPoint(t, out)methodPoint at parameter t (0-1) -- abstract, each subclass implements
getPointAt(u, out)methodPoint at arc-length position u (0-1) -- evenly spaced
getPoints(divisions, stepRate, out)methodArray of points
getSpacedPoints(divisions, stepRate, out)methodEquidistant points by arc length
getDistancePoints(distance)methodPoints spaced by pixel distance
getLength()methodTotal curve arc length
getTangent(t, out) / getTangentAt(u, out)methodUnit tangent vector
getTFromDistance(distance)methodConvert pixel distance to t value
draw(graphics, pointsTotal)methodRender onto Graphics (default 32 points)
getBounds(out, accuracy)methodBounding Rectangle
activebooleanWhen false, parent Path skips this curve
defaultDivisionsnumberDefault 5 for standalone curves
arcLengthDivisionsnumberPrecision for arc length calculations (default 100)
Show full SKILL.md (589 more words)Show less
PathFollower Component
APITypeDescription
setPath(path, config)methodSet a new Path (optionally auto-start)
startFollow(config, startAt)methodBegin following; config = duration number or PathConfig
pauseFollow()methodPause movement
resumeFollow()methodResume paused movement
stopFollow()methodStop following
isFollowing()methodReturns true if actively moving on path
setRotateToPath(value, offset)methodEnable/disable auto-rotation with offset
pathPathCurrent path reference
pathTweenTweenInternal tween driving movement
pathOffsetVector2Offset from path coordinates
pathVectorVector2Current position on the path
pathDeltaVector2Movement delta since last update
rotateToPathbooleanAuto-rotate to path direction
pathRotationOffsetnumberRotation offset in degrees
PathConfig (Phaser.Types.GameObjects.PathFollower.PathConfig)
PropertyTypeDefaultDescription
durationnumber1000Time in ms to traverse the path
fromnumber0Start position on path (0-1)
tonumber1End position on path (0-1)
positionOnPathbooleanfalseSnap follower to path start on begin
rotateToPathbooleanfalseAuto-rotate to face path direction
rotationOffsetnumber0Degrees added to auto-rotation
startAtnumber0Initial seek position on path (0-1)

The config also accepts all standard Tween properties: ease, repeat, yoyo, delay, hold, onComplete, etc.

Gotchas

  1. getPoint(t) vs getPointAt(u) on curves. getPoint uses the raw curve parameter t, which does not produce evenly spaced points on most curve types. getPointAt maps through arc length for even spacing. On a Path, getPoint already accounts for arc length across the whole path.

  2. Path moveTo creates an inactive curve. The MoveTo pseudo-curve has active: false and zero length. It only repositions the end point for the next curve. It does not draw anything and is skipped by getPoints() and draw().

  3. PathFollower uses a Tween internally. The startFollow config is passed to scene.tweens.addCounter(). All tween properties (ease, delay, repeat, yoyo, callbacks) work. The tween is set to persist: true automatically.

  4. PathFollower offset behavior. When positionOnPath: false (default), the follower's current position becomes the offset from the path start. When positionOnPath: true, the follower snaps to the path's start point and the offset is zeroed.

  5. Ellipse angles are in degrees. The constructor and startAngle/endAngle properties accept degrees. Internally they are stored as radians. The rotation property is in radians, but angle is in degrees.

  6. closePath vs autoClose. closePath() adds an explicit Line curve from end to start. autoClose = true only affects getPoints() and getSpacedPoints() output by appending the first point, without adding a curve.

  7. Cached lengths can go stale. getCurveLengths() caches results based on array length only. If you modify a curve's control points, call path.updateArcLengths() to force recalculation.

  8. cubicBezierTo parameter order with numbers. When passing numbers: cubicBezierTo(endX, endY, cp1X, cp1Y, cp2X, cp2Y). The end point comes first, not the control points. When passing Vector2 objects: cubicBezierTo(cp1, cp2, endPoint).

  9. Spline needs at least 4 points. The Catmull-Rom interpolation used by Spline works best with 4+ points. With fewer points, the curve may not behave as expected.

  10. Line curve arcLengthDivisions is 1. Unlike other curves (default 100), Line overrides this to 1 since a line is inherently uniform. No need to adjust it.

Source File Map

FilePurpose
src/curves/path/Path.jsPath class -- combines multiple curves, factory registered as this.add.path
src/curves/path/MoveTo.jsMoveTo pseudo-curve for creating gaps in paths
src/curves/Curve.jsBase Curve class -- shared methods for all curve types
src/curves/LineCurve.jsLine curve (two-point segment)
src/curves/SplineCurve.jsSpline curve (Catmull-Rom through multiple points)
src/curves/CubicBezierCurve.jsCubic Bezier curve (4 control points)
src/curves/QuadraticBezierCurve.jsQuadratic Bezier curve (3 control points)
src/curves/EllipseCurve.jsEllipse/arc curve with angle and rotation support
src/gameobjects/pathfollower/PathFollower.jsPathFollower Game Object (extends Sprite + PathFollower mixin)
src/gameobjects/pathfollower/PathFollowerFactory.jsthis.add.follower factory registration
src/gameobjects/components/PathFollower.jsPathFollower component mixin (setPath, startFollow, pathUpdate, etc.)
src/gameobjects/pathfollower/typedefs/PathConfig.jsPathConfig typedef

© 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

Files

Just SKILL.md in store/agents/phaser/skills/curves-and-paths of autonomous-ai/openharness.

Open the folder on GitHubat commit cc4983e

Compare with similar skills

Curves And Paths 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.

Curves And Paths compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Curves And Paths this skillautonomous-ai/openharness1.2k—~4.2kAutomated safety check: PassMIT
Rust Path Typesopeninterpreter/openinterpreter69k2 repos~605Automated safety check: PassApache-2.0
Click Path Auditaffaan-m/ECC276k3 repos~2kAutomated safety check: PassMIT
Click Path Auditaffaan-m/ECC276k—~519Automated safety check: PassMIT
Click Path Auditaffaan-m/ECC276k—~1.2kAutomated safety check: PassMIT
Gke Golden Pathgoogle/skills21k—~2.1kAutomated safety check: PassApache-2.0

Similar skills

  • Rust Path Types

    openinterpreter/openinterpreter

    Rules for choosing Rust types for filesystem paths in new Codex code, covering protocol types, internal use and model tool arguments.

    69k GitHub starsUsed in 2 repos~605 tokens
    DevelopmentAuto-check passed
  • Click Path Audit

    affaan-m/ECC

    Trace every user-facing button/touchpoint through its full state change sequence to find bugs where functions individually work but cancel each other out, produce wrong final state, or leave the UI…

    276k GitHub starsUsed in 3 repos~2k tokens
    DevelopmentAuto-check passed
  • Click Path Audit

    affaan-m/ECC

    ユーザー向けボタン/タッチポイントを完全な状態変更シーケンスを通して追跡し、機能が個別に機能するが互いにキャンセルされたり、間違った最終状態を生成したり、UIを矛盾した状態にしたままにするバグを見つけます。次の場合に使用します:体系的なデバッグがバグを見つけたが、ユーザーは壊れたボタンを報告する場合、または共有状態ストアに触れる主要なリファクター後。

    276k GitHub stars~519 tokensUpdated yesterday
    Auto-check passed
  • Click Path Audit

    affaan-m/ECC

    追踪每个面向用户的按钮/触点的完整状态变化序列,以发现功能单独工作但相互抵消、产生错误最终状态或使UI处于不一致状态的错误。适用于:系统调试未发现错误但用户报告按钮失效,或在任何涉及共享状态存储的重大重构之后。

    276k GitHub stars~1.2k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Gke Golden Path

    google/skills

    Official

    Provides GKE golden path configuration defaults, production readiness checklists, and cluster default patterns.

    21k GitHub stars~2.1k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Paths

    forcedotcom/salesforcedx-vscode

    Prefer vscode-uri over node:path. An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~283 tokensUpdated yesterday
    Auto-check passed

More from autonomous-ai/openharness

All 100 skills in this repo
  • G-code Slicer Tool

    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.

    1.2k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Home Assistant Automation Builder

    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.

    1.2k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Score Music Composer

    autonomous-ai/openharness

    Turns a musical brief into LilyPond concert-pitch music, checked parts for each instrument and a playable practice pack.

    1.2k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • OrcaSlicer 3MF and G-code Workflow

    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.

    1.2k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Sheets and Docs Report Builder

    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.

    1.2k GitHub stars~708 tokensUpdated today
    Auto-check passed
  • Bambu Labs

    autonomous-ai/openharness

    Dry-run, upload, and cautiously initiate local Bambu Lab print jobs from validated plain .gcode, using Bambu LAN FTPS/MQTT handoffs.

    1.2k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check: warnings

Questions about Curves And Paths

What does Curves And Paths do?

A skill your agent uses when working with curves and paths in Phaser 4. Curves And Paths is an agent skill from autonomous-ai/openharness. Use this skill when working with curves and paths in Phaser 4.

When should I use Curves And Paths?

Curves And Paths fits situations like: working with curves and paths in Phaser 4.

How do I install Curves And Paths in Claude Code?

Run `npx skills add autonomous-ai/openharness --skill curves-and-paths -a claude-code`. Or copy the skill folder (store/agents/phaser/skills/curves-and-paths in autonomous-ai/openharness) into .claude/skills/curves-and-paths in your project. Claude Code loads it when a task matches its description.

How do I install Curves And Paths in Codex?

Run `npx skills add autonomous-ai/openharness --skill curves-and-paths -a codex`. Or copy the skill folder (store/agents/phaser/skills/curves-and-paths in autonomous-ai/openharness) into .agents/skills/curves-and-paths in your project. Codex loads it when a task matches its description.

Can I use Curves And Paths 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 autonomous-ai/openharness --skill curves-and-paths -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/curves-and-paths, .gemini/skills/curves-and-paths, .github/skills/curves-and-paths and .opencode/skills/curves-and-paths in your project.

What does Curves And Paths need to run?

SKILL.md names no scripts, command-line tools or credentials: Curves And Paths is instructions for the agent only.

Does Curves And Paths access the network?

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.

Is Curves And Paths 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 Curves And Paths use?

Curves And Paths 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 Curves And Paths use?

About 4.2k tokens (SKILL.md is roughly 17k 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 Curves And Paths?

Skills that share tags, products or a category with Curves And Paths: Rust Path Types (openinterpreter/openinterpreter, 69k stars), Click Path Audit (affaan-m/ECC, 276k stars), Click Path Audit (affaan-m/ECC, 276k stars) and Click Path Audit (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Curves And Paths?

autonomous-ai (a GitHub organization) maintains it in autonomous-ai/openharness, which has 1,210 GitHub stars. The repository holds 100 skills in this directory. The repository was last updated on October 10, 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.