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
6 changes: 6 additions & 0 deletions .changeset/readme-trigger-skill.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@operatorstack/yield": patch
---

Explain how to run a registered skill from a new coding-agent session and fix
the README logo on npm.
28 changes: 22 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<p align="center">
<a href="https://yield.operatorstack.systems/">
<img src="assets/yield-mark.svg" width="96" height="96" alt="Yield" />
<img src="https://raw.githubusercontent.com/operatorstack/yield/main/assets/yield-mark.svg" width="96" height="96" alt="Yield" />
</a>
</p>

Expand Down Expand Up @@ -98,7 +98,7 @@ Replace them with the test, publish, and registry commands for your project.
The complete tested source is in
[`examples/release-checklist`](examples/release-checklist/).

## Use Yield in four steps
## Use Yield in five steps

### 1. Install Yield

Expand Down Expand Up @@ -148,7 +148,7 @@ npm exec -- yskill doctor skills/release --test
This runs commands for real and supplies agent and user responses from the
fixture. A successful test reaches `completed` without leaving a run journal.

### 4. Register and use the skill
### 4. Register the skill

Registration is the discovery step. This command detects installed verified
agents and writes a small adapter for each one:
Expand All @@ -173,9 +173,25 @@ If all three are selected, Yield creates these generated files:
```

The adapters point back to `skills/release`. They do not copy the workflow or
install its dependencies again. Start a new agent session after registration,
then invoke `/release` where slash skills are supported or ask the agent to use
the release skill.
install its dependencies again.

### 5. Run the skill

Start a new coding-agent session so it discovers the registered skill. Where
slash skills are supported, run:

```text
/release
```

Otherwise, ask the agent in plain language:

```text
Use the release skill to publish this package.
```

The agent follows the generated adapter, runs the canonical workflow in
`skills/release`, and asks for each required agent or user response.

## How Yield runs and resumes

Expand Down
9 changes: 6 additions & 3 deletions scripts/readme.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,14 @@ test("README agent claims match the pinned registry", async () => {
assert.doesNotMatch(readme, /Agent Plugins and Yield/);
});

test("README presents the workflow as four ordered steps", async () => {
test("README presents the workflow as five ordered steps", async () => {
const readme = await text("README.md");
const headings = [
"### 1. Install Yield",
"### 2. Create the workflow",
"### 3. Test the workflow",
"### 4. Register and use the skill",
"### 4. Register the skill",
"### 5. Run the skill",
];

let previous = -1;
Expand All @@ -72,6 +73,8 @@ test("README presents the workflow as four ordered steps", async () => {
assert.match(readme, /npm exec -- yskill doctor skills\/release --test/);
assert.match(readme, /npm exec -- yskill register skills\/release/);
assert.match(readme, /Registration is the discovery step\./);
assert.match(readme, /^\/release$/m);
assert.match(readme, /Use the release skill to publish this package\./);
});

test("README adapter paths match every verified agent", async () => {
Expand All @@ -97,7 +100,7 @@ test("README uses the edge-cropped Yield mark", async () => {
]);
assert.match(
readme,
/<img src="assets\/yield-mark\.svg" width="96" height="96" alt="Yield" \/>/,
/<img src="https:\/\/raw\.githubusercontent\.com\/operatorstack\/yield\/main\/assets\/yield-mark\.svg" width="96" height="96" alt="Yield" \/>/,
);
assert.doesNotMatch(readme, /apple-touch-icon\.png/);
assert.match(mark, /viewBox="0 0 60 60"/);
Expand Down