blueprint-os 1.0.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/skills/brainstorming/SKILL.md +1 -1
- package/.agent/skills/creating-skills/SKILL.md +7 -7
- package/.agent/skills/find-skills/SKILL.md +133 -0
- package/README.md +35 -8
- package/adapters/antigravity.md +2 -2
- package/adapters/cursor.md +3 -2
- package/adapters/skills-sh.md +28 -15
- package/bin/blueprint-os.js +7 -3
- package/lib/init.js +108 -1
- package/package.json +1 -1
|
@@ -154,4 +154,4 @@ The `shaping-specs` skill will use the design document as its starting context,
|
|
|
154
154
|
- Design document output: `specs/`
|
|
155
155
|
- Next step: `.agent/skills/shaping-specs/SKILL.md`
|
|
156
156
|
- Existing standards (Mode 2): `standards/README.md`
|
|
157
|
-
- Superpowers brainstorming reference: `npx skills add obra/superpowers`
|
|
157
|
+
- Superpowers brainstorming reference: `npx skills add obra/superpowers -a antigravity -y --copy`
|
|
@@ -16,7 +16,7 @@ description: Acquires or creates Blueprint OS skills. Searches skills.sh registr
|
|
|
16
16
|
|
|
17
17
|
- [ ] Clarify the skill's purpose — what task does it solve, and what are its triggers?
|
|
18
18
|
- [ ] Search skills.sh for an existing community skill (see Instructions > Discovering on skills.sh)
|
|
19
|
-
- [ ] If found: install with `npx skills add <owner/repo
|
|
19
|
+
- [ ] If found: install with `npx skills add <owner/repo> -a antigravity -y --copy` and evaluate fit
|
|
20
20
|
- [ ] If it covers the need as-is: done — update the Skills Index in `README.md`
|
|
21
21
|
- [ ] If it partially fits: customize it (see Instructions > Customizing an installed skill)
|
|
22
22
|
- [ ] If nothing suitable found: create from scratch (see Instructions > Creating from scratch)
|
|
@@ -32,7 +32,7 @@ Before building anything, search the [skills.sh registry](https://skills.sh) —
|
|
|
32
32
|
**Search via agent:**
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
npx skills add https://github.com/vercel-labs/skills --skill find-skills
|
|
35
|
+
npx skills add https://github.com/vercel-labs/skills --skill find-skills -a antigravity -y --copy
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
Then ask the `find-skills` skill to search for what you need.
|
|
@@ -42,18 +42,18 @@ Then ask the `find-skills` skill to search for what you need.
|
|
|
42
42
|
**Install a skill:**
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
npx skills add <owner/repo>
|
|
45
|
+
npx skills add <owner/repo> -a antigravity -y --copy
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Example:
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
npx skills add supabase/agent-skills
|
|
52
|
-
npx skills add vercel-labs/agent-skills
|
|
53
|
-
npx skills add anthropics/skills
|
|
51
|
+
npx skills add supabase/agent-skills -a antigravity -y --copy
|
|
52
|
+
npx skills add vercel-labs/agent-skills -a antigravity -y --copy
|
|
53
|
+
npx skills add anthropics/skills -a antigravity -y --copy
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
The `-a antigravity` flag installs to `.agent/skills/`, matching Blueprint OS. The `--copy` flag creates real files (not symlinks) so deleting `.agents` won't break the skill when Cursor is detected.
|
|
57
57
|
|
|
58
58
|
### Customizing an installed skill
|
|
59
59
|
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: find-skills
|
|
3
|
+
description: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Find Skills
|
|
7
|
+
|
|
8
|
+
This skill helps you discover and install skills from the open agent skills ecosystem.
|
|
9
|
+
|
|
10
|
+
## When to Use This Skill
|
|
11
|
+
|
|
12
|
+
Use this skill when the user:
|
|
13
|
+
|
|
14
|
+
- Asks "how do I do X" where X might be a common task with an existing skill
|
|
15
|
+
- Says "find a skill for X" or "is there a skill for X"
|
|
16
|
+
- Asks "can you do X" where X is a specialized capability
|
|
17
|
+
- Expresses interest in extending agent capabilities
|
|
18
|
+
- Wants to search for tools, templates, or workflows
|
|
19
|
+
- Mentions they wish they had help with a specific domain (design, testing, deployment, etc.)
|
|
20
|
+
|
|
21
|
+
## What is the Skills CLI?
|
|
22
|
+
|
|
23
|
+
The Skills CLI (`npx skills`) is the package manager for the open agent skills ecosystem. Skills are modular packages that extend agent capabilities with specialized knowledge, workflows, and tools.
|
|
24
|
+
|
|
25
|
+
**Key commands:**
|
|
26
|
+
|
|
27
|
+
- `npx skills find [query]` - Search for skills interactively or by keyword
|
|
28
|
+
- `npx skills add <package>` - Install a skill from GitHub or other sources
|
|
29
|
+
- `npx skills check` - Check for skill updates
|
|
30
|
+
- `npx skills update` - Update all installed skills
|
|
31
|
+
|
|
32
|
+
**Browse skills at:** https://skills.sh/
|
|
33
|
+
|
|
34
|
+
## How to Help Users Find Skills
|
|
35
|
+
|
|
36
|
+
### Step 1: Understand What They Need
|
|
37
|
+
|
|
38
|
+
When a user asks for help with something, identify:
|
|
39
|
+
|
|
40
|
+
1. The domain (e.g., React, testing, design, deployment)
|
|
41
|
+
2. The specific task (e.g., writing tests, creating animations, reviewing PRs)
|
|
42
|
+
3. Whether this is a common enough task that a skill likely exists
|
|
43
|
+
|
|
44
|
+
### Step 2: Search for Skills
|
|
45
|
+
|
|
46
|
+
Run the find command with a relevant query:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npx skills find [query]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
For example:
|
|
53
|
+
|
|
54
|
+
- User asks "how do I make my React app faster?" → `npx skills find react performance`
|
|
55
|
+
- User asks "can you help me with PR reviews?" → `npx skills find pr review`
|
|
56
|
+
- User asks "I need to create a changelog" → `npx skills find changelog`
|
|
57
|
+
|
|
58
|
+
The command will return results like:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
Install with npx skills add <owner/repo@skill>
|
|
62
|
+
|
|
63
|
+
vercel-labs/agent-skills@vercel-react-best-practices
|
|
64
|
+
└ https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Step 3: Present Options to the User
|
|
68
|
+
|
|
69
|
+
When you find relevant skills, present them to the user with:
|
|
70
|
+
|
|
71
|
+
1. The skill name and what it does
|
|
72
|
+
2. The install command they can run
|
|
73
|
+
3. A link to learn more at skills.sh
|
|
74
|
+
|
|
75
|
+
Example response:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
I found a skill that might help! The "vercel-react-best-practices" skill provides
|
|
79
|
+
React and Next.js performance optimization guidelines from Vercel Engineering.
|
|
80
|
+
|
|
81
|
+
To install it:
|
|
82
|
+
npx skills add vercel-labs/agent-skills@vercel-react-best-practices
|
|
83
|
+
|
|
84
|
+
Learn more: https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Step 4: Offer to Install
|
|
88
|
+
|
|
89
|
+
If the user wants to proceed, you can install the skill for them:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
npx skills add <owner/repo@skill> -g -y
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The `-g` flag installs globally (user-level) and `-y` skips confirmation prompts.
|
|
96
|
+
|
|
97
|
+
## Common Skill Categories
|
|
98
|
+
|
|
99
|
+
When searching, consider these common categories:
|
|
100
|
+
|
|
101
|
+
| Category | Example Queries |
|
|
102
|
+
| --------------- | ---------------------------------------- |
|
|
103
|
+
| Web Development | react, nextjs, typescript, css, tailwind |
|
|
104
|
+
| Testing | testing, jest, playwright, e2e |
|
|
105
|
+
| DevOps | deploy, docker, kubernetes, ci-cd |
|
|
106
|
+
| Documentation | docs, readme, changelog, api-docs |
|
|
107
|
+
| Code Quality | review, lint, refactor, best-practices |
|
|
108
|
+
| Design | ui, ux, design-system, accessibility |
|
|
109
|
+
| Productivity | workflow, automation, git |
|
|
110
|
+
|
|
111
|
+
## Tips for Effective Searches
|
|
112
|
+
|
|
113
|
+
1. **Use specific keywords**: "react testing" is better than just "testing"
|
|
114
|
+
2. **Try alternative terms**: If "deploy" doesn't work, try "deployment" or "ci-cd"
|
|
115
|
+
3. **Check popular sources**: Many skills come from `vercel-labs/agent-skills` or `ComposioHQ/awesome-claude-skills`
|
|
116
|
+
|
|
117
|
+
## When No Skills Are Found
|
|
118
|
+
|
|
119
|
+
If no relevant skills exist:
|
|
120
|
+
|
|
121
|
+
1. Acknowledge that no existing skill was found
|
|
122
|
+
2. Offer to help with the task directly using your general capabilities
|
|
123
|
+
3. Suggest the user could create their own skill with `npx skills init`
|
|
124
|
+
|
|
125
|
+
Example:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
I searched for skills related to "xyz" but didn't find any matches.
|
|
129
|
+
I can still help you with this task directly! Would you like me to proceed?
|
|
130
|
+
|
|
131
|
+
If this is something you do often, you could create your own skill:
|
|
132
|
+
npx skills init my-xyz-skill
|
|
133
|
+
```
|
package/README.md
CHANGED
|
@@ -79,7 +79,9 @@ From your project directory:
|
|
|
79
79
|
npx blueprint-os init
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
This copies `.agent/`, `standards/`, `references/`, and `adapters/` into your project. No dependency is added to `package.json`.
|
|
82
|
+
This copies `.agent/`, `standards/`, `references/`, and `adapters/` into your project. No dependency is added to `package.json`. The `find-skills` skill is included so you can search the skills.sh registry without installing it separately.
|
|
83
|
+
|
|
84
|
+
**Conditional copy:** If `standards/` or `references/` already contain project content (files beyond the template), they are preserved and not overwritten.
|
|
83
85
|
|
|
84
86
|
**Or copy manually:** Place the `.agent/` folder, `standards/` folder, and `references/` folder at the root of your project:
|
|
85
87
|
|
|
@@ -87,6 +89,9 @@ This copies `.agent/`, `standards/`, `references/`, and `adapters/` into your pr
|
|
|
87
89
|
your-project/
|
|
88
90
|
├── .agent/
|
|
89
91
|
│ └── skills/
|
|
92
|
+
│ ├── find-skills/ ← pre-installed
|
|
93
|
+
│ ├── brainstorming/
|
|
94
|
+
│ └── ...
|
|
90
95
|
├── standards/
|
|
91
96
|
├── references/
|
|
92
97
|
└── ... your code
|
|
@@ -124,11 +129,33 @@ your-project/
|
|
|
124
129
|
**Adding a new skill:**
|
|
125
130
|
|
|
126
131
|
```
|
|
127
|
-
1.
|
|
128
|
-
2. If found: npx skills add <owner/repo>
|
|
132
|
+
1. Use the pre-installed find-skills: "Read .agent/skills/find-skills/SKILL.md and find a skill for [task]" — or browse https://skills.sh
|
|
133
|
+
2. If found: npx skills add <owner/repo> -a antigravity -y --copy
|
|
129
134
|
3. If not found: ask your agent "Read .agent/skills/creating-skills/SKILL.md and create a skill for [task]"
|
|
130
135
|
```
|
|
131
136
|
|
|
137
|
+
### Updating Blueprint OS
|
|
138
|
+
|
|
139
|
+
To refresh core skills and adapters without touching your content:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
npx blueprint-os@latest update
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**What `update` does:**
|
|
146
|
+
- Updates core skills in `.agent/skills/` (brainstorming, shaping-specs, discovering-standards, etc.)
|
|
147
|
+
- Updates `adapters/`
|
|
148
|
+
- Refreshes `references/agent-workflow/` and `references/README.md`
|
|
149
|
+
- Refreshes `standards/README.md`
|
|
150
|
+
|
|
151
|
+
**What `update` preserves:**
|
|
152
|
+
- `specs/` — never touched
|
|
153
|
+
- Your standards files (e.g. `api-design.md`, `error-handling.md`)
|
|
154
|
+
- Your reference files (anything beyond `agent-workflow/`)
|
|
155
|
+
- Community skills you installed from skills.sh
|
|
156
|
+
|
|
157
|
+
**Conditional copy on `init`:** If you run `init` again, `standards/` and `references/` are preserved when they already contain project content (files beyond the shipped template).
|
|
158
|
+
|
|
132
159
|
---
|
|
133
160
|
|
|
134
161
|
## Skills Index
|
|
@@ -137,6 +164,7 @@ Skills live in `.agent/skills/`. Each skill is a `SKILL.md` file the agent reads
|
|
|
137
164
|
|
|
138
165
|
| Skill | Path | Purpose |
|
|
139
166
|
|---|---|---|
|
|
167
|
+
| Find Skills | `.agent/skills/find-skills/` | Search the skills.sh registry for community skills (pre-installed) |
|
|
140
168
|
| Brainstorming | `.agent/skills/brainstorming/` | Explore problems, compare approaches, produce a design document |
|
|
141
169
|
| Creating Skills | `.agent/skills/creating-skills/` | Find on skills.sh first, author from scratch as fallback |
|
|
142
170
|
| Shaping Specs | `.agent/skills/shaping-specs/` | Formalize a chosen direction into an implementation spec |
|
|
@@ -146,7 +174,7 @@ Skills live in `.agent/skills/`. Each skill is a `SKILL.md` file the agent reads
|
|
|
146
174
|
| Security Audit | `.agent/skills/security-audit/` | Audit auth, API, and sensitive data changes before merge |
|
|
147
175
|
| Code Review | `.agent/skills/code-review/` | Final validation against spec and standards before merge |
|
|
148
176
|
|
|
149
|
-
**Community skills** from [skills.sh](https://skills.sh) install
|
|
177
|
+
**Community skills** from [skills.sh](https://skills.sh) install into `.agent/skills/` when you use `-a antigravity -y --copy`. The `--copy` flag creates real files so deleting `.agents` (created when Cursor is detected) won't break the skill.
|
|
150
178
|
|
|
151
179
|
---
|
|
152
180
|
|
|
@@ -258,17 +286,16 @@ Agent loads `component-patterns.md`, `error-handling.md`, and any relevant refer
|
|
|
258
286
|
|
|
259
287
|
You want the agent to follow a strict TDD workflow but Blueprint OS has no skill for it.
|
|
260
288
|
|
|
261
|
-
**Step 1:
|
|
289
|
+
**Step 1: Use the pre-installed find-skills**
|
|
262
290
|
```
|
|
263
|
-
|
|
291
|
+
Read .agent/skills/find-skills/SKILL.md and find a skill for test-driven development
|
|
264
292
|
```
|
|
265
|
-
Then: `Use the find-skills skill to search for a test-driven development skill`
|
|
266
293
|
|
|
267
294
|
Found: `obra/superpowers` has `test-driven-development`.
|
|
268
295
|
|
|
269
296
|
**Step 2: Install it**
|
|
270
297
|
```
|
|
271
|
-
npx skills add obra/superpowers test-driven-development
|
|
298
|
+
npx skills add obra/superpowers --skill test-driven-development -a antigravity -y --copy
|
|
272
299
|
```
|
|
273
300
|
Lands in `.agent/skills/test-driven-development/SKILL.md` — immediately available.
|
|
274
301
|
|
package/adapters/antigravity.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Using Blueprint OS in Antigravity
|
|
2
2
|
|
|
3
|
-
Blueprint OS uses the `.agent/skills/` structure natively — the same format Antigravity expects. No extra setup required.
|
|
3
|
+
Blueprint OS uses the `.agent/skills/` structure natively — the same format Antigravity expects. When installing from skills.sh, use `-a antigravity` so skills land here. No extra setup required.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -133,7 +133,7 @@ Use the `creating-skills` skill — it searches skills.sh first, then creates fr
|
|
|
133
133
|
Find or create a skill for [task]
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
-
The agent will check [skills.sh](https://skills.sh) first (`npx skills add https://github.com/vercel-labs/skills --skill find-skills`), install a community skill if available, or create a new one following `.agent/skills/creating-skills/SKILL.md`.
|
|
136
|
+
The agent will check [skills.sh](https://skills.sh) first (`npx skills add https://github.com/vercel-labs/skills --skill find-skills -a antigravity -y --copy`), install a community skill if available, or create a new one following `.agent/skills/creating-skills/SKILL.md`.
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
package/adapters/cursor.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Using Blueprint OS in Cursor
|
|
2
2
|
|
|
3
|
-
Cursor reads rules from `.cursor/rules/` and skills from a skills directory. Blueprint OS skills live in `.agent/skills/` as portable markdown files. This guide shows how to connect them.
|
|
3
|
+
Cursor reads rules from `.cursor/rules/` and skills from a skills directory. Blueprint OS skills live in `.agent/skills/` (singular) as portable markdown files. Cursor's native skills path is `.agents/skills/` (plural) — Blueprint OS uses `.agent/` and connects via rules and `@` references. Do not rename `.agent` to `.agents`; keep the Blueprint OS layout. This guide shows how to connect them.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -23,6 +23,7 @@ Blueprint OS skills are located in `.agent/skills/`. When the user invokes a ski
|
|
|
23
23
|
|
|
24
24
|
## Available skills
|
|
25
25
|
|
|
26
|
+
- **Find skills** → `.agent/skills/find-skills/SKILL.md` (pre-installed)
|
|
26
27
|
- **Brainstorming** → `.agent/skills/brainstorming/SKILL.md`
|
|
27
28
|
- **Creating skills** → `.agent/skills/creating-skills/SKILL.md`
|
|
28
29
|
- **Shaping specs** → `.agent/skills/shaping-specs/SKILL.md`
|
|
@@ -128,4 +129,4 @@ Run QA after implementation. Run SEC when changes touch auth, API, or sensitive
|
|
|
128
129
|
- Reference designs and diagrams in `references/` with `@references/checkout-flow.mmd` or `@references/agent-workflow/superpowers-link.md`
|
|
129
130
|
- Brainstorm documents and spec files saved to `specs/` are readable the same way
|
|
130
131
|
- The `.agent/` folder is invisible to most file trees by default — open it explicitly if needed
|
|
131
|
-
- For skills.sh integration, see [skills-sh.md](skills-sh.md)
|
|
132
|
+
- For skills.sh integration, see [skills-sh.md](skills-sh.md). Use `-a antigravity -y --copy` when installing so skills land in `.agent/skills/` as real files. Without `--copy`, the CLI may symlink from `.agents/`, and deleting `.agents` breaks the skill.
|
package/adapters/skills-sh.md
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
# Using skills.sh with Blueprint OS
|
|
2
2
|
|
|
3
|
-
[skills.sh](https://skills.sh) is an open registry of reusable agent skills.
|
|
3
|
+
[skills.sh](https://skills.sh) is an open registry of reusable agent skills. Blueprint OS uses `.agent/skills/` (singular). The skills CLI installs to different paths per agent — use the Antigravity target so skills land in `.agent/skills/` and work with Blueprint OS.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Paths: `.agent` vs `.agents`
|
|
8
|
+
|
|
9
|
+
The skills CLI uses agent-specific paths. Cursor, Codex, and other "Universal" agents use `.agents/skills/` (plural). Antigravity uses `.agent/skills/` (singular). Blueprint OS uses `.agent/skills/` for all adapters — Cursor reads from there via rules and `@` references, not from `.agents`. Always target Antigravity when installing so skills land in the correct folder.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Symlinks: use `--copy` for Cursor
|
|
14
|
+
|
|
15
|
+
The CLI defaults to symlinks. One location holds the canonical copy; others point to it. If Cursor is detected, the canonical copy may live in `.agents/`. Deleting `.agents` then breaks the skill in `.agent/`. Use `--copy` so `.agent/skills/` gets real files. You can safely remove `.agents` if the CLI creates it.
|
|
4
16
|
|
|
5
17
|
---
|
|
6
18
|
|
|
7
19
|
## How it works
|
|
8
20
|
|
|
9
|
-
```
|
|
10
|
-
npx skills add <owner/repo>
|
|
21
|
+
```bash
|
|
22
|
+
npx skills add <owner/repo> -a antigravity -y --copy
|
|
11
23
|
```
|
|
12
24
|
|
|
13
|
-
|
|
25
|
+
The `-a antigravity` flag installs to `.agent/skills/`, matching Blueprint OS. The `--copy` flag creates real files (not symlinks) so deleting `.agents` won't break the skill. The `-y` flag skips prompts. Installed skills are immediately available via `@.agent/skills/<skill-name>/SKILL.md`.
|
|
14
26
|
|
|
15
27
|
Skills.sh supports Cursor, Antigravity, Claude Code, Codex, Cline, Windsurf, and more — the same tools Blueprint OS targets.
|
|
16
28
|
|
|
@@ -21,7 +33,7 @@ Skills.sh supports Cursor, Antigravity, Claude Code, Codex, Cline, Windsurf, and
|
|
|
21
33
|
**Option 1 — Use the find-skills skill:**
|
|
22
34
|
|
|
23
35
|
```bash
|
|
24
|
-
npx skills add https://github.com/vercel-labs/skills --skill find-skills
|
|
36
|
+
npx skills add https://github.com/vercel-labs/skills --skill find-skills -a antigravity -y --copy
|
|
25
37
|
```
|
|
26
38
|
|
|
27
39
|
This installs a meta-skill that can search the registry for you. Then ask your agent:
|
|
@@ -36,7 +48,7 @@ Visit [skills.sh](https://skills.sh) and search by keyword or browse by category
|
|
|
36
48
|
|
|
37
49
|
**Option 3 — Search by GitHub org:**
|
|
38
50
|
|
|
39
|
-
Many popular tool maintainers publish official skills:
|
|
51
|
+
Many popular tool maintainers publish official skills. Append `-a antigravity -y` for Blueprint OS:
|
|
40
52
|
|
|
41
53
|
| Publisher | Install command | What's inside |
|
|
42
54
|
|---|---|---|
|
|
@@ -53,10 +65,10 @@ Many popular tool maintainers publish official skills:
|
|
|
53
65
|
|
|
54
66
|
```bash
|
|
55
67
|
# Single repo (may contain multiple skills)
|
|
56
|
-
npx skills add supabase/agent-skills
|
|
68
|
+
npx skills add supabase/agent-skills -a antigravity -y --copy
|
|
57
69
|
|
|
58
70
|
# Install a specific skill by name
|
|
59
|
-
npx skills add obra/superpowers systematic-debugging
|
|
71
|
+
npx skills add obra/superpowers --skill systematic-debugging -a antigravity -y --copy
|
|
60
72
|
```
|
|
61
73
|
|
|
62
74
|
Skills land in `.agent/skills/<skill-name>/SKILL.md`. Open them to inspect what was installed.
|
|
@@ -105,7 +117,7 @@ If you've built a Blueprint OS skill that others would benefit from, you can pub
|
|
|
105
117
|
|
|
106
118
|
1. Push your `.agent/skills/<skill-name>/` folder to a public GitHub repo
|
|
107
119
|
2. Submit your skill at [skills.sh](https://skills.sh) (follow the site's submission process)
|
|
108
|
-
3. Others can then install it with `npx skills add <your-github-username>/<repo
|
|
120
|
+
3. Others can then install it with `npx skills add <your-github-username>/<repo> -a antigravity -y --copy`
|
|
109
121
|
|
|
110
122
|
**Tip:** Structure your repo so each skill is its own folder at the root — that's the convention the `npx skills add` command expects.
|
|
111
123
|
|
|
@@ -117,18 +129,19 @@ These community skills complement Blueprint OS directly:
|
|
|
117
129
|
|
|
118
130
|
| Skill | Install | Pairs with |
|
|
119
131
|
|---|---|---|
|
|
120
|
-
| `systematic-debugging` | `npx skills add obra/superpowers` | Any execution phase |
|
|
121
|
-
| `writing-plans` | `npx skills add obra/superpowers` | `shaping-specs` |
|
|
122
|
-
| `executing-plans` | `npx skills add obra/superpowers` | After `deploying-standards` |
|
|
123
|
-
| `requesting-code-review` | `npx skills add obra/superpowers` | After execution |
|
|
124
|
-
| `api-design-principles` | `npx skills add wshobson/agents` | `discovering-standards` for API projects |
|
|
125
|
-
| `test-driven-development` | `npx skills add obra/superpowers` | Before writing new features |
|
|
132
|
+
| `systematic-debugging` | `npx skills add obra/superpowers -a antigravity -y --copy` | Any execution phase |
|
|
133
|
+
| `writing-plans` | `npx skills add obra/superpowers -a antigravity -y --copy` | `shaping-specs` |
|
|
134
|
+
| `executing-plans` | `npx skills add obra/superpowers -a antigravity -y --copy` | After `deploying-standards` |
|
|
135
|
+
| `requesting-code-review` | `npx skills add obra/superpowers -a antigravity -y --copy` | After execution |
|
|
136
|
+
| `api-design-principles` | `npx skills add wshobson/agents -a antigravity -y --copy` | `discovering-standards` for API projects |
|
|
137
|
+
| `test-driven-development` | `npx skills add obra/superpowers -a antigravity -y --copy` | Before writing new features |
|
|
126
138
|
|
|
127
139
|
---
|
|
128
140
|
|
|
129
141
|
## Notes
|
|
130
142
|
|
|
131
143
|
- skills.sh skills use the same `SKILL.md` format as Blueprint OS — no conversion needed
|
|
144
|
+
- Always use `-a antigravity -y --copy` when installing. `-a antigravity` puts skills in `.agent/skills/`. `--copy` creates real files (not symlinks) so deleting `.agents` won't break the skill. Without it, the CLI may symlink from `.agents/`, and removing `.agents` breaks `.agent/`
|
|
132
145
|
- If `npx skills add` is not available, clone the repo and copy the skill folder manually into `.agent/skills/`
|
|
133
146
|
- Community skills may not follow all Blueprint OS conventions — review before use
|
|
134
147
|
- Pin to a specific commit if you need a stable, reproducible skill version
|
package/bin/blueprint-os.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const { init } = require('../lib/init');
|
|
3
|
+
const { init, update } = require('../lib/init');
|
|
4
4
|
|
|
5
5
|
const [cmd] = process.argv.slice(2);
|
|
6
6
|
|
|
7
7
|
if (cmd === 'init') {
|
|
8
8
|
init(process.cwd());
|
|
9
|
+
} else if (cmd === 'update') {
|
|
10
|
+
update(process.cwd());
|
|
9
11
|
} else {
|
|
10
12
|
console.log('Blueprint OS - AI agent workflow system\n');
|
|
11
|
-
console.log('Usage:
|
|
12
|
-
console.log('
|
|
13
|
+
console.log('Usage:');
|
|
14
|
+
console.log(' npx blueprint-os init Install or reinstall (preserves standards/references if they have content)');
|
|
15
|
+
console.log(' npx blueprint-os update Safe update: refreshes core skills and adapters, preserves your content');
|
|
16
|
+
console.log('\nUse "npx blueprint-os@latest init" or "npx blueprint-os@latest update" to get the latest version.');
|
|
13
17
|
process.exit(1);
|
|
14
18
|
}
|
package/lib/init.js
CHANGED
|
@@ -4,6 +4,40 @@ const path = require('path');
|
|
|
4
4
|
const PACKAGE_ROOT = path.join(__dirname, '..');
|
|
5
5
|
const FOLDERS = ['.agent', 'standards', 'references', 'adapters'];
|
|
6
6
|
|
|
7
|
+
const CORE_SKILLS = [
|
|
8
|
+
'brainstorming',
|
|
9
|
+
'creating-skills',
|
|
10
|
+
'shaping-specs',
|
|
11
|
+
'discovering-standards',
|
|
12
|
+
'deploying-standards',
|
|
13
|
+
'quality-assurance',
|
|
14
|
+
'security-audit',
|
|
15
|
+
'code-review',
|
|
16
|
+
'find-skills',
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
function hasUserContent(dir, packageOnly) {
|
|
20
|
+
if (!fs.existsSync(dir)) return false;
|
|
21
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
22
|
+
for (const e of entries) {
|
|
23
|
+
const name = e.name;
|
|
24
|
+
if (e.isDirectory()) {
|
|
25
|
+
if (!packageOnly.dirs.includes(name)) return true;
|
|
26
|
+
} else {
|
|
27
|
+
if (!packageOnly.files.includes(name)) return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function shouldPreserveStandards(dest) {
|
|
34
|
+
return hasUserContent(dest, { files: ['README.md'], dirs: [] });
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function shouldPreserveReferences(dest) {
|
|
38
|
+
return hasUserContent(dest, { files: ['README.md'], dirs: ['agent-workflow'] });
|
|
39
|
+
}
|
|
40
|
+
|
|
7
41
|
function init(cwd) {
|
|
8
42
|
const resolvedCwd = path.resolve(cwd);
|
|
9
43
|
const resolvedRoot = path.resolve(PACKAGE_ROOT);
|
|
@@ -25,6 +59,16 @@ function init(cwd) {
|
|
|
25
59
|
continue;
|
|
26
60
|
}
|
|
27
61
|
|
|
62
|
+
if (folder === 'standards' && shouldPreserveStandards(dest)) {
|
|
63
|
+
console.log(` ⊘ standards/ (preserved - has project content)`);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (folder === 'references' && shouldPreserveReferences(dest)) {
|
|
68
|
+
console.log(` ⊘ references/ (preserved - has project content)`);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
|
|
28
72
|
fs.cpSync(src, dest, { recursive: true });
|
|
29
73
|
console.log(` ✓ ${folder}/`);
|
|
30
74
|
}
|
|
@@ -40,4 +84,67 @@ function init(cwd) {
|
|
|
40
84
|
console.log(' npx blueprint-os --help');
|
|
41
85
|
}
|
|
42
86
|
|
|
43
|
-
|
|
87
|
+
function update(cwd) {
|
|
88
|
+
const resolvedCwd = path.resolve(cwd);
|
|
89
|
+
const resolvedRoot = path.resolve(PACKAGE_ROOT);
|
|
90
|
+
if (resolvedCwd === resolvedRoot || resolvedCwd.startsWith(resolvedRoot + path.sep)) {
|
|
91
|
+
console.log('You are inside the Blueprint OS package. Run from your project directory instead:\n');
|
|
92
|
+
console.log(' cd /path/to/your-project');
|
|
93
|
+
console.log(' npx blueprint-os update\n');
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const agentDest = path.join(cwd, '.agent', 'skills');
|
|
98
|
+
if (!fs.existsSync(agentDest)) {
|
|
99
|
+
console.log('Blueprint OS not found. Run "npx blueprint-os init" first.\n');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
console.log('Updating Blueprint OS...\n');
|
|
104
|
+
|
|
105
|
+
const skillsSrc = path.join(PACKAGE_ROOT, '.agent', 'skills');
|
|
106
|
+
for (const skill of CORE_SKILLS) {
|
|
107
|
+
const src = path.join(skillsSrc, skill);
|
|
108
|
+
const dest = path.join(agentDest, skill);
|
|
109
|
+
if (fs.existsSync(src)) {
|
|
110
|
+
fs.cpSync(src, dest, { recursive: true });
|
|
111
|
+
console.log(` ✓ .agent/skills/${skill}/`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const adaptersSrc = path.join(PACKAGE_ROOT, 'adapters');
|
|
116
|
+
const adaptersDest = path.join(cwd, 'adapters');
|
|
117
|
+
if (fs.existsSync(adaptersSrc)) {
|
|
118
|
+
fs.cpSync(adaptersSrc, adaptersDest, { recursive: true });
|
|
119
|
+
console.log(' ✓ adapters/');
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const refsSrc = path.join(PACKAGE_ROOT, 'references');
|
|
123
|
+
const refsDest = path.join(cwd, 'references');
|
|
124
|
+
if (fs.existsSync(refsSrc) && fs.existsSync(refsDest)) {
|
|
125
|
+
const agentWorkflowSrc = path.join(refsSrc, 'agent-workflow');
|
|
126
|
+
const agentWorkflowDest = path.join(refsDest, 'agent-workflow');
|
|
127
|
+
if (fs.existsSync(agentWorkflowSrc)) {
|
|
128
|
+
fs.cpSync(agentWorkflowSrc, agentWorkflowDest, { recursive: true });
|
|
129
|
+
console.log(' ✓ references/agent-workflow/');
|
|
130
|
+
}
|
|
131
|
+
const refsReadmeSrc = path.join(refsSrc, 'README.md');
|
|
132
|
+
const refsReadmeDest = path.join(refsDest, 'README.md');
|
|
133
|
+
if (fs.existsSync(refsReadmeSrc)) {
|
|
134
|
+
fs.copyFileSync(refsReadmeSrc, refsReadmeDest);
|
|
135
|
+
console.log(' ✓ references/README.md');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const standardsReadmeSrc = path.join(PACKAGE_ROOT, 'standards', 'README.md');
|
|
140
|
+
const standardsReadmeDest = path.join(cwd, 'standards', 'README.md');
|
|
141
|
+
if (fs.existsSync(standardsReadmeSrc) && fs.existsSync(path.dirname(standardsReadmeDest))) {
|
|
142
|
+
fs.copyFileSync(standardsReadmeSrc, standardsReadmeDest);
|
|
143
|
+
console.log(' ✓ standards/README.md');
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
console.log('\nDone. Core skills, adapters, and framework references updated.');
|
|
147
|
+
console.log('Preserved: specs/, your standards files, your references, community skills.');
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
module.exports = { init, update, CORE_SKILLS };
|