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 .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
{
"name": "raystack",
"source": "./",
"version": "1.1.0",
"version": "1.1.1",
"description": "Skills by Harun R. Rayhan: a full development flow (new project intake, research, PRD, specs, plans, reviewed builds, ship; gap-fill, design review and migration for existing projects), read-only scans and reviews (security, performance, scalability, reliability and availability, architecture incl. MVC and CQRS, frontend, code health, CI/CD pipelines, AWS, infrastructure, databases), working principles and local browser verification.",
"category": "devops"
}
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "raystack",
"version": "1.1.0",
"version": "1.1.1",
"description": "Skills by Harun R. Rayhan: a full development flow (new project intake, research, PRD, specs, plans, reviewed builds, ship; gap-fill, design review and migration for existing projects), read-only scans and reviews (security, performance, scalability, reliability and availability, architecture incl. MVC and CQRS, frontend, code health, CI/CD pipelines, AWS, infrastructure, databases), working principles and local browser verification.",
"author": {
"name": "Harun R. Rayhan",
Expand Down
2 changes: 1 addition & 1 deletion .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "raystack",
"displayName": "RayStack",
"version": "1.1.0",
"version": "1.1.1",
"description": "Skills by Harun R. Rayhan: a full development flow (new project intake, research, PRD, specs, plans, reviewed builds, ship; gap-fill, design review and migration for existing projects), read-only scans and reviews (security, performance, scalability, reliability and availability, architecture incl. MVC and CQRS, frontend, code health, CI/CD pipelines, AWS, infrastructure, databases), working principles and local browser verification.",
"author": {
"name": "Harun R. Rayhan"
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

## 1.1.1 (2026-11-04)

- The installer knows OpenClaw (`--agent openclaw`, `~/.openclaw/skills`) and its earlier
names Clawdbot and Moltbot (`--agent clawdbot`, `--agent moltbot`).
- README: rows for OpenClaw and the Grok app; Update and Uninstall are their own sections,
each with a prompt to copy.

## 1.1.0 (2026-11-04)

- New `audit` skill: the entry point for reviews and scans, as `dev` is for building.
Expand Down
58 changes: 46 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,17 @@ Global folder `~/.grok/skills`, project folder `.claude/skills` (add `--project

</details>

<details>
<summary><img src="assets/agents/grok.png" alt="" width="16" height="16"> <b>Grok (app)</b></summary>

```text
Install RayStack for Grok: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent grok`, then tell me what it printed.
```

Paste into the Grok app, where it can run commands on your machine. The skills go to `~/.grok/skills`, which Grok Build reads too.

</details>

<details>
<summary><img src="assets/agents/antigravity.png" alt="" width="16" height="16"> <b>Antigravity</b></summary>

Expand Down Expand Up @@ -422,6 +433,17 @@ Global folder `~/.continue/skills`, project folder `.continue/skills` (add `--pr

</details>

<details>
<summary><img src="assets/agents/openclaw.png" alt="" width="16" height="16"> <b>OpenClaw (Clawdbot)</b></summary>

```text
Install RayStack globally for OpenClaw: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent openclaw`, then tell me what it printed.
```

Global folder `~/.openclaw/skills`, project folder `skills` (add `--project .`). Still on the old name? Use `--agent clawdbot` (`~/.clawdbot/skills`) or `--agent moltbot` (`~/.moltbot/skills`).

</details>

Not listed? `~/.raystack/install.sh --agent custom --dir /path/to/its/skills`, or the
[skills CLI](https://skills.sh): `npx skills add HarunRRayhan/RayStack -g -a <agent>`.

Expand All @@ -431,9 +453,15 @@ Claude Code; on any other agent, give reviews read-only credentials. Logos belon
owners. Other options: `--dry-run` shows what would happen, `--link` symlinks to the checkout,
and `--help` lists the rest. Per-agent details and sources: [docs/agents.md](docs/agents.md).

### Update
## Update

Type `/raystack update` in your agent, or run:
Type `/raystack update` in your agent, or paste:

```text
Update RayStack: run `~/.raystack/install.sh --update`, then tell me the new version.
```

Or in a terminal:

```bash
~/.raystack/install.sh --update
Expand All @@ -444,16 +472,6 @@ install made from it (they are listed in `~/.raystack-installs`). Running the on
again does the same for the agents it finds. Plugin installs update through the agent (see
above). Start a new agent session afterwards.

### Uninstall

```bash
~/.raystack/install.sh --uninstall --agent all # every agent found
~/.raystack/install.sh --uninstall --project . # this project (Claude Code)
rm -rf ~/.raystack ~/.raystack-installs # then the checkout and its list
```

`--uninstall` removes exactly the thirty-one RayStack skills and nothing else.

## Skills

RayStack is thirty-one skills. You only need `/raystack` (or `/dev` to build and `/audit` to review); they call the rest.
Expand Down Expand Up @@ -490,6 +508,22 @@ With `autoMerge` off (the default) the agent stops at green CI and asks before i
`deployCheck` tells it how to confirm the deploy is live. A repo with no git remote is merged
locally after you say yes.

## Uninstall

```text
Uninstall RayStack: run `~/.raystack/install.sh --uninstall --agent all`, then delete ~/.raystack and ~/.raystack-installs and tell me what was removed.
```

Or in a terminal:

```bash
~/.raystack/install.sh --uninstall --agent all # every agent found
~/.raystack/install.sh --uninstall --project . # this project (Claude Code)
rm -rf ~/.raystack ~/.raystack-installs # then the checkout and its list
```

`--uninstall` removes exactly the thirty-one RayStack skills and nothing else.

## Credits

RayStack borrows ideas from four skill packs:
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.1.0
1.1.1
Binary file added assets/agents/openclaw.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions docs/agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,8 @@ read-only credentials, which the contract asks for anyway.
## Other agents

`install.sh` also knows Antigravity, Gemini CLI, GitHub Copilot, Windsurf, Cline, Kiro, Roo
Code, Kilo Code, Amp, Goose, Qwen Code, Trae, Junie, Augment, Warp, Zed, OpenHands and
Continue. Their global and project skills folders, and the folder that shows an agent is
Code, Kilo Code, Amp, Goose, Qwen Code, Trae, Junie, Augment, Warp, Zed, OpenHands,
Continue and OpenClaw (formerly Clawdbot and Moltbot). Their global and project skills folders, and the folder that shows an agent is
installed, come from the agent table of the [skills CLI](https://github.com/vercel-labs/skills)
(`src/agents.ts`). RayStack has not tested them. None of them run the review guard, so pair
reviews with read-only credentials. If an agent reads a different folder on your machine, use
Expand Down
8 changes: 6 additions & 2 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ Usage: install.sh [--agent all|<agent>|custom] [--dir <skills-dir>] [--project [

Copies the thirty-one RayStack skills into an agent's skills directory (default agent: claude).
Agents: claude codex cursor grok antigravity gemini copilot windsurf cline kiro roo kilo amp
goose opencode qwen trae junie augment warp zed openhands continue.
goose opencode qwen trae junie augment warp zed openhands continue openclaw
clawdbot moltbot.
--agent all every agent found in your home folder; asks per agent at a terminal
--yes with --agent all, install for every agent found without asking
--dir skills directory; required with --agent custom, overrides the agent default
Expand Down Expand Up @@ -113,7 +114,10 @@ augment|Augment|.augment|.augment/skills|.augment/skills
warp|Warp|.warp|.agents/skills|.agents/skills
zed|Zed|.config/zed|.agents/skills|.agents/skills
openhands|OpenHands|.openhands|.openhands/skills|.openhands/skills
continue|Continue|.continue|.continue/skills|.continue/skills'
continue|Continue|.continue|.continue/skills|.continue/skills
openclaw|OpenClaw (Clawdbot)|.openclaw|.openclaw/skills|skills
clawdbot|Clawdbot|.clawdbot|.clawdbot/skills|skills
moltbot|Moltbot|.moltbot|.moltbot/skills|skills'
# agent_field <name> <column 2-5>
agent_field() { printf '%s\n' "$AGENTS" | awk -F'|' -v n="$1" -v c="$2" '$1 == n { print $c }'; }

Expand Down
4 changes: 2 additions & 2 deletions plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
"$schema": "https://agent-plugins.org/schemas/1.1.1/plugin.schema.json",
"name": "raystack",
"version": "1.1.0",
"version": "1.1.1",
"description": "Skills by Harun R. Rayhan: a full development flow (new project intake, research, PRD, specs, plans, reviewed builds, ship; gap-fill, design review and migration for existing projects), read-only scans and reviews (security, performance, scalability, reliability and availability, architecture incl. MVC and CQRS, frontend, code health, CI/CD pipelines, AWS, infrastructure, databases), working principles and local browser verification.",
"author": {
"name": "Harun R. Rayhan",
Expand Down
2 changes: 2 additions & 0 deletions tests/test-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ case "$outs" in *"same folder: Cline"*) pass "all: shared folder named";; *) fai
HOME="$T/x" bash ./install.sh --agent nosuch >/dev/null 2>&1 && fail "unknown agent accepted" || pass "unknown agent rejected"
P="$T/projgem"; mkdir -p "$P"; HOME="$T/x" bash ./install.sh --agent gemini --project "$P" >/dev/null 2>&1
assert_eq "$(count "$P/.agents/skills")" 31 "gemini project folder"
HO="$T/homeclaw"; mkdir -p "$HO/.openclaw"; HOME="$HO" bash ./install.sh --agent all --yes >/dev/null 2>&1
assert_eq "$(count "$HO/.openclaw/skills")" 31 "all: openclaw folder"
bash -n get.sh && pass "get.sh parses" || fail "get.sh syntax"
[ "$(tail -1 get.sh | cut -c1-10)" = 'main "$@" ' ] && pass "get.sh runs main last" || fail "get.sh must end with main"
case "$out" in *"codex plugin"*) pass "prints plugin hint";; *) fail "no plugin hint";; esac
Expand Down
Loading