Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/publish-skill.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ jobs:

```bash
# Install this skill
fastskill add https://github.com/${{ github.repository }}.git
fastskill skill add https://github.com/${{ github.repository }}.git
```

## Contents
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/skill-evals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,15 @@ on:
push:
branches: [main]
paths:
- 'README.md'
- 'CONTRIBUTING.md'
- 'CLAUDE.md'
- 'fastskill/SKILL.md'
- 'fastskill/skill-project.toml'
- 'fastskill/references/eval.md'
- 'evals/**'
- 'scripts/**'
- 'specs/**'
- '.github/workflows/skill-evals.yml'
# No `paths:` filter here on purpose. `validate` and `score-fixtures` are
# required status checks, and a required check that is skipped by a path
Expand Down Expand Up @@ -45,6 +51,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate canonical command namespaces
run: |
python3 -m unittest scripts/test_command_namespaces.py
python3 scripts/check-command-namespaces.py
- name: Install FastSkill CLI
run: |
curl -fsSL https://raw.githubusercontent.com/gofastskill/fastskill/main/scripts/install.sh | bash
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# CLAUDE.md

This repository contains the FastSkill skill for AI Agent Skills, installed and used via the FastSkill CLI (`fastskill add https://github.com/gofastskill/skill.git`).
This repository contains the FastSkill skill for AI Agent Skills, installed and used via the FastSkill CLI (`fastskill skill add https://github.com/gofastskill/skill.git`).

## Pull request automation

Expand Down
13 changes: 10 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,15 @@ from the `fastskill/` directory so path resolution finds that manifest and `../e
## Development

1. Edit files in the `fastskill/` subdirectory (and `evals/` when extending the suite)
2. Open a pull request from a branch off the latest `origin/main` (see `CLAUDE.md`) —
2. Run `python3 -m unittest scripts/test_command_namespaces.py` and
`python3 scripts/check-command-namespaces.py` from the repository root
3. Open a pull request from a branch off the latest `origin/main` (see `CLAUDE.md`) —
changes land via PR with required status checks, not by pushing to `main` directly
3. On merge, the CI/CD workflow automatically packages and publishes a new release
4. On merge, the CI/CD workflow automatically packages and publishes a new release

The syntax check is deterministic and does not need a FastSkill binary. Before releasing,
repeat the eval validation and fixture scoring below with the candidate FastSkill binary on
`PATH`; the installed public release may still expose the previous breaking command tree.

## Evaluations

Expand Down Expand Up @@ -91,7 +97,8 @@ a check that contradicts the column is rejected rather than silently resolved. S

`.github/workflows/skill-evals.yml` gates changes to the skill/eval files:

- **validate** and **score-fixtures** run on every push/PR — deterministic, no agent, no tokens.
- **namespace syntax**, **validate**, and **score-fixtures** run on every push/PR — deterministic,
no agent, no tokens.
- **live-eval** is opt-in via *Run workflow* (`workflow_dispatch`), runs the v1 suite against a
real agent, and needs `OPENAI_API_KEY` / `ANTHROPIC_API_KEY` secrets.

Expand Down
11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
# FastSkill Skill Repository

This repository contains the FastSkill skill for AI Agent Skills. Use the FastSkill CLI to install and use it.
This repository contains the FastSkill skill for AI Agent Skills. Install it with the
FastSkill CLI to give agents current guidance for skill projects, packages, bundles,
repositories, evaluations, and operations.

## Installation

From your project root:

```bash
fastskill add https://github.com/gofastskill/skill.git
fastskill project init
fastskill skill add https://github.com/gofastskill/skill.git
```

Read the installed skill with `fastskill skill read fastskill`. The skill documents the
canonical command namespaces introduced by the breaking CLI migration; use a matching
FastSkill release.

See [CONTRIBUTING.md](CONTRIBUTING.md) for development and release details.

## License
Expand Down
5 changes: 5 additions & 0 deletions evals/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ evals/
from `fastskill/` and the fixture check runs from the repo root.

```bash
python3 scripts/check-command-namespaces.py # canonical CLI syntax, no binary

cd fastskill
fastskill eval validate # schema + config, no agent
cd ..
Expand All @@ -47,6 +49,9 @@ fastskill eval run --agent claude --output-dir ../eval-runs
fastskill eval report --run-dir ../eval-runs/<timestamp>/claude
```

Run the FastSkill commands with the candidate binary on `PATH` when validating a breaking
CLI release. The namespace syntax check remains useful before that binary exists.

`eval score` is read-only. Every number it reports is a function of the run's artifacts,
and scoring the committed fixtures leaves the tree clean. The backfill of `command_count`
and the token counts now happens in `eval run`, at write time, where the writer owns the
Expand Down
6 changes: 3 additions & 3 deletions evals/fixtures/pass/eval-skill/aggregated.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
{
"trial_id": 1,
"status": "passed",
"command_count": 2,
"command_count": 1,
"input_tokens": 6,
"output_tokens": 1778,
"output_tokens": 35,
"check_results": [
{
"check_name": "skill_invoked",
Expand All @@ -28,4 +28,4 @@
"pass_count": 1,
"total_trials": 1,
"pass_rate": 1.0
}
}
6 changes: 3 additions & 3 deletions evals/fixtures/pass/eval-skill/trial-1/result.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"trial_id": 1,
"status": "passed",
"command_count": 2,
"command_count": 1,
"input_tokens": 6,
"output_tokens": 1778,
"output_tokens": 35,
"check_results": [
{
"check_name": "skill_invoked",
Expand All @@ -19,4 +19,4 @@
}
],
"error_message": null
}
}
22 changes: 2 additions & 20 deletions evals/fixtures/pass/eval-skill/trial-1/stdout.txt

Large diffs are not rendered by default.

Loading
Loading