smithery/pjpj42

track

Design or generate a new track layout

Installation

$ npx skills add smithery/pjpj42 --skill track

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/pjpj42.

npx skills add smithery/pjpj42

Browse all from smithery/pjpj42

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Write, Edit

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,499 B
  • docs SUMMARY.md 50 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Track Designer

Create valid track layouts for GridRacer.

Track Requirements (from design doc)

Cell Types

enum CellType {
    case track    // Valid racing surface
    case wall     // Collision boundary
    case start    // Starting area
    case finish   // Finish line area
}

Track Structure

struct Track {
    let width: Int
    let height: Int
    let cells: [[CellType]]
    let startPositions: [GridPoint]
    let finishLine: LineSegment
    let lapCount: Int
}

Design Guidelines

  1. Closed loop: Track must form a complete circuit
  2. Width: Minimum 2 cells wide for passing
  3. Start positions: Staggered, equal distance to first turn
  4. Finish line: Perpendicular to track direction
  5. Corners: Allow multiple racing lines
  6. Balance: Fair for all starting positions

Example: Simple Oval (10x8)

..........
.########.
.#......#.
.#......#.
.S......F.
.#......#.
.#......#.
.########.
..........

Legend: .=wall, #=track, S=start, F=finish

Output Format

Generate Swift code for the track:

let simpleOval = Track(
    width: 10,
    height: 8,
    cells: [...],
    startPositions: [GridPoint(2, 4), GridPoint(2, 3)],
    finishLine: LineSegment(start: GridPoint(8, 3), end: GridPoint(8, 5)),
    lapCount: 3
)