95 lines
3.8 KiB
Markdown
95 lines
3.8 KiB
Markdown
# Installing these skills into the `ignition` plugin
|
|
|
|
Three Claude Code skills that package the Exchange tooling in this folder so
|
|
other people get it automatically, without knowing it exists.
|
|
|
|
They are staged here rather than written directly into `AI-Tools` because that
|
|
repo was read-only for this work. Nothing below has been applied there yet.
|
|
|
|
## Where they go
|
|
|
|
Into the **existing `ignition` plugin**, not a new one. That follows the
|
|
marketplace's own rule:
|
|
|
|
> Plugins are split by **domain**, not by repo it came from. […] A fourth plugin
|
|
> with one skill in it is worse than putting that skill somewhere slightly
|
|
> imperfect: it's another thing to install and another manifest to maintain.
|
|
|
|
Exchange publishing is Ignition-domain work, and `ignition` already exists.
|
|
|
|
```bash
|
|
cp -r ignition-exchange-conformance \
|
|
ignition-exchange-convert \
|
|
ignition-exchange-publish \
|
|
~/git/AI-Tools/plugins/ignition/skills/
|
|
```
|
|
|
|
Resulting layout:
|
|
|
|
```
|
|
plugins/ignition/skills/
|
|
ignition-gateway/
|
|
ignition-trial-reset/
|
|
ignition-exchange-conformance/ SKILL.md exchange_lint.py test_exchange_lint.py
|
|
ignition-exchange-convert/ SKILL.md verify_refs.py parity.py
|
|
ignition-exchange-publish/ SKILL.md
|
|
```
|
|
|
|
## Then: bump the plugin version
|
|
|
|
`plugins/ignition/.claude-plugin/plugin.json` — `0.1.0` → `0.2.0`, and widen the
|
|
description, which currently only mentions the gateway API and trial reset:
|
|
|
|
```json
|
|
{
|
|
"name": "ignition",
|
|
"description": "Ignition 8.3 gateway skills. HTTP API authentication and endpoint discovery, trial-expiry detection and reset on unlicensed gateways, and Ignition Exchange publishing — conformance checking, converting a project into Exchange shape, and packaging for upload.",
|
|
"author": { "name": "Brendan Peck", "email": "b.peck@prime-controls.com" },
|
|
"version": "0.2.0"
|
|
}
|
|
```
|
|
|
|
`.claude-plugin/marketplace.json` carries a second copy of that description —
|
|
update it to match, or the marketplace listing will understate the plugin.
|
|
|
|
## Then: the README rows
|
|
|
|
Under `### ignition`, the skill table becomes:
|
|
|
|
```markdown
|
|
| Skill | Loads when you're... |
|
|
| --- | --- |
|
|
| `ignition-gateway` | calling an Ignition 8.3 gateway's HTTP API (`/data/api/v1/...`) |
|
|
| `ignition-trial-reset` | debugging bad-quality tags, or resetting a trial gateway |
|
|
| `ignition-exchange-conformance` | checking whether a project is ready for the Ignition Exchange |
|
|
| `ignition-exchange-convert` | turning an existing project into a publishable Exchange resource |
|
|
| `ignition-exchange-publish` | packaging and uploading a resource to the Exchange |
|
|
```
|
|
|
|
Suggested paragraph to follow it:
|
|
|
|
> The three `ignition-exchange-*` skills cover the publishing pipeline end to
|
|
> end. `-conformance` runs a 38-rule checker against the Exchange Resources Style
|
|
> Guide and, just as usefully, says what it cannot check. `-convert` carries the
|
|
> migration order and two scripts that catch what a conformance checker cannot
|
|
> see: dangling references after a mass rename, and features silently dropped.
|
|
> `-publish` is the upload form, field by field.
|
|
|
|
## Verify after copying
|
|
|
|
```bash
|
|
cd ~/git/AI-Tools
|
|
python3 plugins/ignition/skills/ignition-exchange-conformance/test_exchange_lint.py
|
|
python3 -c "import json;[json.load(open(p)) for p in ['.claude-plugin/marketplace.json','plugins/ignition/.claude-plugin/plugin.json']];print('manifests parse')"
|
|
/plugin marketplace add ~/git/AI-Tools # local path works while developing
|
|
```
|
|
|
|
## Keeping the copies in sync
|
|
|
|
`exchange_lint.py` and `test_exchange_lint.py` now exist twice: in
|
|
`exchangeResources/` (the working copy, used by this repo) and inside the skill
|
|
(the distributable). `verify_refs.py` and `parity.py` live **only** in the skill.
|
|
|
|
If you change a rule, update both — or make `exchangeResources/` a symlink to the
|
|
skill copy and keep one source of truth.
|