open-index/open-npm huggingface dataset:
npm package: @skills-supply/agents-toml
Description: Parser and validator for agents.toml manifest files
Latest version: 0.1.3

# @skills-supply/agents-toml

Parser and validator for `agents.toml` manifest files.

## Installation

```bash
npm install @skills-supply/agents-toml
```

## Usage

```typescript
import { parse, parseOrThrow } from "@skills-supply/agents-toml"

const result = parse(`
[package]
name = "my-skills"
version = "1.0.0"

[agents]
claude-code = true

[dependencies]
superpowers = "superpowers@1.0.0"
`)

if (result.ok) {
  console.log(result.value.package?.name) // "my-skills"
  console.log(result.value.agents.get("claude-code")) // true
  console.log(result.value.dependencies.get("superpowers"))
  // { type: "registry", name: "superpowers", version: "1.0.0" }
}

// Or throw on error:
const manifest = parseOrThrow(tomlString)
```

## What is agents.toml?

A TOML-based manifest file that lets you:

- **Declare agent compatibility** — specify which AI agents (Claude Code, Codex, etc.) can use your skills
- **Manage dependencies** — pull skills from registries, GitHub, generic git, or local paths
- **Configure exports** — control what your package exposes

## Quick Example

```toml
[package]
name = "my-skills"
version = "1.0.0"

[agents]
claude-code = true

[dependencies]
superpowers = "superpowers-marketplace/superpowers@1.0.0"
local-tools = { path = "../my-local-tools" }
```

## Documentation

- **[SPEC.md](./SPEC.md)** — Full specification

## Dependency Types

| Type | Syntax | Example |
|------|--------|---------|
| Registry | `"[@org/]name@version"` | `"superpowers@1.0.0"` |
| GitHub | `{ gh = "owner/repo", tag = "v1.0" }` | `{ gh = "user/skills", branch = "main" }` |
| Git | `{ git = "https://...", rev = "abc" }` | `{ git = "https://gitlab.com/o/r", tag = "v1" }` |
| Local | `{ path = "..." }` | `{ path = "../local-skills" }` |
| Plugin | `{ type = "claude-plugin", ... }` | `{ type = "claude-plugin", plugin = "x", marketplace = "o/r" }` |

## JSON Schema

Access the generated JSON schema:

```typescript
import schema from "@skills-supply/agents-toml/schema.json"
```

## API

### `parse(contents: string): ParseResult<ValidatedManifest>`

Parses and validates an agents.toml string. Returns a result object:

```typescript
type ParseResult<T> =
  | { ok: true; value: T }
  | { ok: false; error: ParseError }
```

### `parseOrThrow(contents: string): ValidatedManifest`

Same as `parse`, but throws on error.

### Schemas (Zod)

All Zod schemas are exported for custom validation:

```typescript
import {
  ManifestSchema,
  PackageSchema,
  AgentsSchema,
  DependenciesSchema,
  // ...
} from "@skills-supply/agents-toml"
```

## License

[MIT](./LICENSE)
npm package: @skills17/competitor-readme
Description: Generate HTML and PDF readmes for competitors out for markdown files.
Author: Cyril Wanner
Latest version: 2.1.7

# skills17/cypress-helpers

This package provides a framework to write test projects for skills related competitions. It includes:
- Components to render competitor instructions and ask competitors to sign up
- Commands
  - start or build the test project with live refresh `competitor-readme`
  - generate PDF documents of each task module `convert-to-pdf`
- ... and more

## Table of contents

- [Installation](#installation)
- [Usage](#usage)
- [License](#license)

## Installation

**Requirements:**
- Node `16` or greater

To install this package, simply run the following command:

```bash
npm install @skills17/competitor-readme
```

Alternatively, you can simply run the following command to serve the readme without installing:
```bash
npx @skills17/competitor-readme
```

It is suggested to add the following npm scripts:

```json
  "scripts": {
    "start": "competitor-readme",
    "build": "competitor-readme --build dist",
    "pdf": "convert-to-pdf --skip-build"
  },
```

This will provide the following commands:
- `npm start` - Start the live-refresh server (useful for writing the readme)
- `npm run build` - Creates a production build
- `npm run pdf` - Creates a PDF per module

## Usage

A `championship.yaml` file needs to be created that contains some information about the championship. It should be placed in the root folder of your project, next to the `package.json` file.

See the [`@skills17/competitor-readme/types`](https://github.com/skills17/competitor-readme/tree/main/src/types) TypeScript declarations for a detailed description of all available properties in the `championship.yaml` file.

### CLI

As seen in the installation instructions, the `competitor-readme` command is available.

Running this command will start a development server with live refresh.

## License

[MIT](https://github.com/skills17/cypress-helpers/blob/master/LICENSE)
npm package: @skills17/static-task-server
Description: Serves static task files.
Author: Cyril Wanner
Latest version: 3.0.0

# skills17/static-task-server

Serves static task files.

## Table of contents

- [Installation](#installation)
- [Usage](#usage)
- [License](#license)

## Installation

```bash
npm install @skills17/static-task-server
```

## Usage

A `TaskConfig` instance of the [`@skills17/task-config`](https://github.com/skills17/task-config) package can be passed to the `Server` constructor.

```typescript
import Server from '@skills17/static-task-server';

const server = new Server(taskConfig);
await server.serve();
```

This will start a static file server on the address and port specified in the task configuration.
The address under which the task is reachable will be printed to the console.
To disable the console output, pass `false` as a parameter to the `serve` method.

Later, the server can be stopped again by calling the `stop` method:

```typescript
await server.stop();
```

## License

[MIT](https://github.com/skills17/static-task-server/blob/master/LICENSE)
npm package: @skills17/stryker-helpers
Description: Provides Stryker helpers for usage in a skills competition environment.
Author: Sebastian Häni
Latest version: 1.0.0

# skills17/stryker-helpers

This package provides Stryker helpers for usage in a skills competition environment. It includes:

- Custom output formatter

## Table of contents

- [Installation](#installation)
- [Usage](#usage)
- [License](#license)

## Installation

**Requirements:**

- Node `18` or greater

To install this package, run the following command:

```bash
npm install @skills17/stryker-helpers
```

It is suggested to add the following npm scripts:

```json
"scripts": {
"test": "skills17-stryker run",
"test:json": "skills17-stryker run --json"
},
```

This will provide the following commands:

- `npm test` - Run all tests once and show a nice output with the awarded points (useful for the competitors to see
  their points)
- `npm run test:json` - Run all tests once and get a json output (useful for automated marking scripts)

Points can be awarded for coverage of conditionals and deductions for number of mutants survived. If any test fails in
normal execution, no points will be awarded.

## Usage

A `config.yaml` file needs to be created that contains some information about the task. It should be placed in the root
folder of your task, next to the `package.json` file.

See the [`@skills17/task-config`](https://github.com/skills17/task-config#configuration) package for a detailed
description of all available properties in the `config.yaml` file.

### CLI

As seen in the installation instructions, the `skills17-stryker` command is available.

It is a thin wrapper around the `stryker run` command.

All arguments to the command will be forwarded to `stryker` so Stryker can be used exactly the same way if this package
wouldn't be installed.

Additionally, the following new arguments are available:

- `--json` output the test result with scored points in json to standard out

### Scoring

The generated test names are in the following format:

```
[file key]-[mutant name]
```

The file key is the file name being tested with the extension and `src/` removed. Path separators are replace with `.`.
If multiple mutants with the same name are generated, any surviving mutant will make the test fail.

### Extra tests

With `skills17/stryker-helpers` there are no extra tests needed.

## License

[MIT](https://github.com/skills17/stryker-helpers/blob/master/LICENSE)
npm package: @skills17/task-config-api
Description: Provides an API for task config and local history.
Author: Cyril Wanner
Latest version: 2.0.0

# skills17/task-config-api

This package provides an API for the task config and local history for environments where filesystem
access is not possible, such as within a browser.

## Table of contents

- [Installation](#installation)
  - [Production environment](#production-environment)
- [Usage](#usage)
  - [CLI](#cli)
  - [API Endpoints](#api-endpoints)
- [License](#license)

## Installation

For local development, simply run the following command in the task directory:
```bash
npx @skills17/task-config-api
```

The API will then serve the task from the current directory at `http://localhost:4500/:taskId` where
`taskId` is the `id` field from the `config.json` file.

### Production environment

For the production competition environment, it is suggested to install this package once globally
and let one instance handle all tasks. This is more performant than running separate instances for
multiple tasks.

To do so, install this package globally:
```bash
npm install -g @skills17/task-config-api
```

After that, run the globally installed `skills17-task-config-api` command and specify the directories
of all tasks that should be served.
```bash
skills17-task-config-api /path/to/task1 /path/to/task2 /path/to/task3 ...
```

## Usage

### CLI

```
  Usage
    $ skills17-task-config-api [options] [task directories...]

    If no task directory is specified, the current directory will be used.

  Options
    --port, -p   Specify the port [Default=4500]
    --bind, -b   Specify where the server will be bound [Default=127.0.0.1]
```

### API Endpoints

The following API endpoints will be available. The `taskId` parameter is the `id` field from the
`config.json` file of the targeted task.

#### `GET /:taskId/config.json`

Returns the `config.json` file of the path.
It has not been processed and is exactly the version present in the filesystem.

This can later be passed to a `@skills17/task-cconfig` instance in the `load(config)` method.

#### `POST /:taskId/history`

Will create a new entry in the local history if that feature is available.
If the feature is disabled, the response will be `{"created": false}`, otherwise true will be
returned after a successful entry.

The request needs to have a `application/json` content type and the body will be stored in the
history file.
Additionally, a `time` field will be added to the body before saving the file.
For example, if the body is `{"testResults":[...]}`, it will be saved as
`{"time":1613859061,"testResults":[...]}`.

## License

[MIT](https://github.com/skills17/task-config-api/blob/master/LICENSE)
npm package: @skills17/test-result-printer
Description: Prints test results in a nice format to the console.
Author: Cyril Wanner
Latest version: 2.2.0

# skills17/test-result-printer

<img src="https://cyrilwanner.github.io/packages/skills17/test-result-printer/assets/output-preview.png" align="center">

Prints test results in a nice format to the console.

## Table of contents

- [Installation](#installation)
- [Usage](#usage)
- [License](#license)

## Installation

```bash
npm install @skills17/test-result-printer
```

## Usage

A `TestRun` instance of the [`@skills17/test-result`](https://github.com/skills17/test-result) package can be passed to the `Printer` constructor.

```typescript
import Printer from '@skills17/test-result-printer';

const printer = new Printer(testRun);
printer.print();
```

The result will be printed to the standard output.

Additionally, the `print` method supports an optional options parameter:

```typescript
{
  // use a different printing function (defaults to console.log)
  printer?: (...data: string[]) => void;

  // if the header should be printed or not (defaults to true)
  printHeader?: boolean;

  // if the footer should be printed or not (defaults to false)
  printFooter?: boolean;

  // if points should be printed or not (defaults to true)
  printPoints?: boolean;
}
```

## License

[MIT](https://github.com/skills17/test-result-printer/blob/master/LICENSE)
npm package: @skillscore/cli
Description: CLI for running local skill benchmarks and publishing reports to skillscore.sh
Latest version: 0.1.0

# @skillscore/cli

CLI for running local skill benchmarks and publishing reports to `skillscore.sh`.

## Install

```bash
npm i -g @skillscore/cli
```

Or run directly:

```bash
npx @skillscore/cli doctor
```

## Commands

```bash
ssc doctor
ssc start [--setup] [--cwd <path>] [--port <port>]
ssc publish --run-id <id> [--skill-path <path>] [--site <url>] [--visibility <public|unlisted|private>] [--no-upload]
```

Backward-compatible alias: `skillscore-sh`.