Skip to content

Commit 5b6c98c

Browse files
authored
add Claude plugin wrapper and rename TLA skills (#12)
1 parent 968bfb2 commit 5b6c98c

37 files changed

Lines changed: 2518 additions & 45 deletions

.claude-plugin/marketplace.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "younes-agent-skills",
3+
"owner": {
4+
"name": "younes-io"
5+
},
6+
"metadata": {
7+
"description": "Portable TLA+ agent skills for Claude Code and other Agent Skills clients.",
8+
"version": "0.1.0"
9+
},
10+
"plugins": [
11+
{
12+
"name": "tla-workbenches",
13+
"description": "TLA+ workbench skills for TLC model checking and TLAPS proofs.",
14+
"version": "0.1.0",
15+
"author": {
16+
"name": "younes-io"
17+
},
18+
"source": "./plugins/tla-workbenches"
19+
}
20+
]
21+
}

.github/workflows/skill-ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ on:
77
- main
88

99
jobs:
10-
tlaps-workbench:
11-
name: TLAPS Workbench Script Tests
10+
tla-proof:
11+
name: TLA Proof Script Tests
1212
runs-on: ubuntu-latest
1313

1414
steps:
@@ -24,10 +24,10 @@ jobs:
2424
- name: Shell syntax checks
2525
run: |
2626
set -euo pipefail
27-
bash -n skills/tlaps-workbench/scripts/tlaps_check.sh
28-
bash -n skills/tlaps-workbench/scripts/tests/tlaps_check_test.sh
27+
bash -n skills/tla-proof/scripts/tlaps_check.sh
28+
bash -n skills/tla-proof/scripts/tests/tlaps_check_test.sh
2929
3030
- name: Run TLAPS runner regression tests
3131
run: |
3232
set -euo pipefail
33-
bash skills/tlaps-workbench/scripts/tests/tlaps_check_test.sh
33+
bash skills/tla-proof/scripts/tests/tlaps_check_test.sh

.github/workflows/validate.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Validate
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
validate:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
- uses: actions/setup-node@v4
15+
with:
16+
node-version: 20
17+
18+
- name: Validate portable skill pack
19+
run: npx -y skills add . --list
20+
21+
- name: Sync generated Claude plugin skills
22+
run: ./scripts/sync_claude_plugin_skills.sh
23+
24+
- name: Check generated plugin skills are committed
25+
run: git diff --exit-code -- plugins/tla-workbenches/skills
26+
27+
- name: Validate Claude plugin metadata and generated skills
28+
run: ./scripts/validate_claude_plugin.sh

README.md

Lines changed: 49 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# younes-io/agent-skills
22

3-
A small skill pack compatible with the Vercel `skills` CLI.
3+
A portable Agent Skills repo for TLA+ workbenches, with a generated Claude Code plugin wrapper.
44

55
## Skills
66

7-
- `tlaplus-workbench`: Write and iteratively refine executable TLA+ specs (`.tla`) and TLC configs (`.cfg`), run TLC model checking, and summarize counterexamples.
8-
- `tlaps-workbench`: Write and iteratively refine TLAPS theorem proofs in TLA+ (`.tla`), run `tlapm`, and summarize proved vs failed/omitted obligations.
7+
- `tla-check`: Write and iteratively refine executable TLA+ specs (`.tla`) and TLC configs (`.cfg`), run TLC model checking, and summarize counterexamples.
8+
- `tla-proof`: Write and iteratively refine TLAPS theorem proofs in TLA+ (`.tla`), run `tlapm`, and summarize proved vs failed/omitted obligations.
99

10-
## Install / List (Vercel skills CLI)
10+
## Install / List (Portable Agent Skills)
1111

1212
List skills from this repo (local checkout):
1313

@@ -18,15 +18,42 @@ npx -y skills add . --list
1818
Install from GitHub:
1919

2020
```bash
21-
npx -y skills add younes-io/agent-skills --skill tlaplus-workbench
22-
npx -y skills add younes-io/agent-skills --skill tlaps-workbench
21+
npx -y skills add younes-io/agent-skills --skill tla-check
22+
npx -y skills add younes-io/agent-skills --skill tla-proof
2323
```
2424

2525
Alternatively, use the URL form:
2626

2727
```bash
28-
npx -y skills add https://github.com/younes-io/agent-skills.git --skill tlaplus-workbench
29-
npx -y skills add https://github.com/younes-io/agent-skills.git --skill tlaps-workbench
28+
npx -y skills add https://github.com/younes-io/agent-skills.git --skill tla-check
29+
npx -y skills add https://github.com/younes-io/agent-skills.git --skill tla-proof
30+
```
31+
32+
## Claude Code Install
33+
34+
Add the marketplace in Claude Code:
35+
36+
```text
37+
/plugin marketplace add younes-io/agent-skills
38+
```
39+
40+
Install the plugin:
41+
42+
```text
43+
/plugin install tla-workbenches@younes-agent-skills
44+
```
45+
46+
Reload plugins:
47+
48+
```text
49+
/reload-plugins
50+
```
51+
52+
Invoke the plugin-qualified skills:
53+
54+
```text
55+
/tla-workbenches:tla-check
56+
/tla-workbenches:tla-proof
3057
```
3158

3259
## Repo layout
@@ -38,9 +65,19 @@ Skills live under:
3865
- `skills/<skill-name>/scripts/`
3966
- `skills/<skill-name>/references/`
4067

41-
## tlaplus-workbench prerequisites
68+
Claude-specific wrapper files live under:
69+
70+
- `.claude-plugin/marketplace.json`
71+
- `plugins/tla-workbenches/.claude-plugin/plugin.json`
72+
- `plugins/tla-workbenches/skills/`
73+
- `scripts/sync_claude_plugin_skills.sh`
74+
- `scripts/validate_claude_plugin.sh`
75+
76+
The root `skills/` directory is the only editable source of skill content. The Claude plugin `skills/` tree is generated from it and committed for GitHub-based Claude Code installs.
77+
78+
## tla-check prerequisites
4279

43-
See `skills/tlaplus-workbench/SKILL.md` for full usage.
80+
See `skills/tla-check/SKILL.md` for full usage.
4481

4582
Examples: <https://github.com/younes-io/tlaplus-workbench-examples>
4683

@@ -50,9 +87,9 @@ Common prerequisites:
5087
- `java`
5188
- `tla2tools.jar` (set `TLA2TOOLS_JAR` or pass `--jar` to the runner script)
5289

53-
## tlaps-workbench prerequisites
90+
## tla-proof prerequisites
5491

55-
See `skills/tlaps-workbench/SKILL.md` for full usage.
92+
See `skills/tla-proof/SKILL.md` for full usage.
5693

5794
Examples: <https://github.com/younes-io/tlaplus-workbench-examples>
5895

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "tla-workbenches",
3+
"version": "0.1.0",
4+
"description": "TLA+ workbench skills for TLC model checking and TLAPS proofs.",
5+
"author": {
6+
"name": "younes-io"
7+
}
8+
}

skills/tlaplus-workbench/SKILL.md renamed to plugins/tla-workbenches/skills/tla-check/SKILL.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
2-
name: tlaplus-workbench
3-
description: "Write and iteratively refine executable TLA+ specs (.tla) and TLC model configs (.cfg) from natural-language system designs; run TLC model checking; summarize pass/fail and counterexamples with explicit assumptions and bounds. Use when asked to: design/validate a state machine or distributed protocol with TLA+, create/edit .tla or .cfg files, run TLC, or interpret TLC failures/counterexamples."
2+
name: tla-check
3+
description: "Write and iteratively refine executable TLA+ specs (.tla) and TLC model configs (.cfg) from natural-language system designs; run TLC model checking; summarize pass/fail and counterexamples with explicit assumptions and bounds. Use when asked to design or validate a protocol/state machine, create or edit .tla/.cfg files, run TLC, or interpret TLC failures."
44
---
55

6-
# TLA+ Workbench
6+
# TLA+ Check
77

88
## Outputs
99

1010
- TLA+ spec(s): `*.tla`
1111
- TLC config(s): `*.cfg`
12-
- TLC run artifacts: `.tlaplus-workbench/runs/<run-id>/...` (logs, json trace if any)
12+
- TLC run artifacts: `.tla-check/runs/<run-id>/...` (logs, json trace if any)
1313

1414
## Non-Negotiables (Honesty Rules)
1515

@@ -97,17 +97,17 @@ Prereqs:
9797
- `jq` on PATH
9898
- `tla2tools.jar` available and pointed to by `TLA2TOOLS_JAR` (or pass `--jar`)
9999

100-
Run (from the `tlaplus-workbench` skill directory):
100+
Run (from the `tla-check` skill directory):
101101

102102
```bash
103103
scripts/tlc_check.sh --spec path/to/Foo.tla --cfg path/to/Foo.cfg
104104
```
105105

106106
This writes a run directory under the spec folder:
107-
- `.tlaplus-workbench/runs/<run-id>/summary.json`
108-
- `.tlaplus-workbench/runs/<run-id>/tlc.stdout`
109-
- `.tlaplus-workbench/runs/<run-id>/tlc.stderr`
110-
- `.tlaplus-workbench/runs/<run-id>/counterexample.json` (only if TLC produced one)
107+
- `.tla-check/runs/<run-id>/summary.json`
108+
- `.tla-check/runs/<run-id>/tlc.stdout`
109+
- `.tla-check/runs/<run-id>/tlc.stderr`
110+
- `.tla-check/runs/<run-id>/counterexample.json` (only if TLC produced one)
111111

112112
### 5) Iterate (Tight Loop)
113113

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "TLA+ Check"
3+
short_description: "Write and check TLA+ specs with TLC"
4+
default_prompt: "Turn a natural-language system design into a minimal TLA+ spec (.tla) and TLC model config (.cfg), run TLC model checking, summarize results and counterexamples with explicit bounds and assumptions, and iterate until either properties pass within bounds or a counterexample remains."

skills/tlaplus-workbench/references/spec_skeleton.md renamed to plugins/tla-workbenches/skills/tla-check/references/spec_skeleton.md

File renamed without changes.

skills/tlaplus-workbench/scripts/tlc_check.sh renamed to plugins/tla-workbenches/skills/tla-check/scripts/tlc_check.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Options:
1717
--java BIN Java executable (default: java)
1818
--workers N TLC workers (default: 1)
1919
--timeout-secs N Kill TLC after N seconds (default: 0 = no timeout)
20-
--out-root PATH Run artifact root (default: <spec-dir>/.tlaplus-workbench/runs)
20+
--out-root PATH Run artifact root (default: <spec-dir>/.tla-check/runs)
2121
--trace-max-steps N Max trace steps in counterexample summary (default: 50)
2222
-h, --help Show this help
2323
EOF
@@ -302,7 +302,7 @@ fi
302302
if [[ -n "$OUT_ROOT" ]]; then
303303
out_root="$(abs_maybe_missing "$OUT_ROOT")"
304304
else
305-
out_root="$spec_dir/.tlaplus-workbench/runs"
305+
out_root="$spec_dir/.tla-check/runs"
306306
fi
307307

308308
mkdir -p "$out_root"

skills/tlaplus-workbench/scripts/tlc_trace_summary.sh renamed to plugins/tla-workbenches/skills/tla-check/scripts/tlc_trace_summary.sh

File renamed without changes.

0 commit comments

Comments
 (0)