blueprint-os 1.1.0 → 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 +157 -157
- package/.agent/skills/deploying-standards/SKILL.md +85 -85
- package/.agent/skills/discovering-standards/SKILL.md +107 -107
- package/.agent/skills/find-skills/SKILL.md +133 -133
- package/README.md +24 -0
- package/bin/blueprint-os.js +7 -3
- package/lib/init.js +108 -1
- package/package.json +33 -33
- package/references/agent-workflow/Skills.md +155 -155
- package/references/agent-workflow/blast.md +155 -155
- package/standards/README.md +123 -123
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: discovering-standards
|
|
3
|
-
description: Extracts coding patterns, conventions, and architectural decisions from an existing codebase and saves them as standards files. Use when the user asks to document standards, capture patterns, extract conventions, or onboard an AI agent to an existing project.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Discovering Standards
|
|
7
|
-
|
|
8
|
-
## When to use this skill
|
|
9
|
-
|
|
10
|
-
- User asks to "document my standards", "capture my conventions", or "extract patterns from my code"
|
|
11
|
-
- Onboarding Blueprint OS to an existing project for the first time
|
|
12
|
-
- A recurring pattern has emerged that should be formalized
|
|
13
|
-
- Tribal knowledge exists in the code but not in writing
|
|
14
|
-
- Before brainstorming a new feature in an existing codebase — discover constraints first, then brainstorm within them
|
|
15
|
-
|
|
16
|
-
## Workflow
|
|
17
|
-
|
|
18
|
-
- [ ] Identify which area to document (ask user if unclear)
|
|
19
|
-
- [ ] Scan relevant files in that area
|
|
20
|
-
- [ ] Identify recurring patterns, naming conventions, and architectural decisions
|
|
21
|
-
- [ ] Draft a standards file and confirm with the user
|
|
22
|
-
- [ ] Save to `standards/<category>.md`
|
|
23
|
-
- [ ] Update `standards/README.md` index if the file is new
|
|
24
|
-
|
|
25
|
-
## Instructions
|
|
26
|
-
|
|
27
|
-
### Discovery areas
|
|
28
|
-
|
|
29
|
-
Approach one area at a time. Common areas to document:
|
|
30
|
-
|
|
31
|
-
- **Tech stack** — languages, frameworks, libraries, versions
|
|
32
|
-
- **Folder structure** — how the project is organized and why
|
|
33
|
-
- **Naming conventions** — files, variables, components, routes, database columns
|
|
34
|
-
- **Component patterns** — how UI components are structured and composed
|
|
35
|
-
- **API design** — endpoint naming, request/response shapes, error handling
|
|
36
|
-
- **Data models** — schema conventions, relationships, field naming
|
|
37
|
-
- **Testing approach** — test file location, naming, tooling, coverage expectations
|
|
38
|
-
- **Error handling** — how errors surface, are logged, and returned to clients
|
|
39
|
-
- **State management** — how application state is structured and updated
|
|
40
|
-
- **Authentication** — how auth is implemented and enforced
|
|
41
|
-
|
|
42
|
-
### Extraction process
|
|
43
|
-
|
|
44
|
-
For each area:
|
|
45
|
-
|
|
46
|
-
1. Read 3–5 representative files
|
|
47
|
-
2. Identify what is consistent across them (naming, structure, patterns)
|
|
48
|
-
3. Note any exceptions — are they intentional or accidental?
|
|
49
|
-
4. Write only what the agent needs to replicate the pattern, not what is obvious
|
|
50
|
-
|
|
51
|
-
### Standards file format
|
|
52
|
-
|
|
53
|
-
Save to `standards/<category>.md`:
|
|
54
|
-
|
|
55
|
-
```markdown
|
|
56
|
-
# [Category] Standards
|
|
57
|
-
|
|
58
|
-
**Last updated:** [YYYY-MM-DD]
|
|
59
|
-
|
|
60
|
-
## Overview
|
|
61
|
-
[One paragraph: what this standard covers and why it exists]
|
|
62
|
-
|
|
63
|
-
## Conventions
|
|
64
|
-
|
|
65
|
-
### [Convention name]
|
|
66
|
-
[Description of the pattern]
|
|
67
|
-
|
|
68
|
-
**Example:**
|
|
69
|
-
[code example or file path showing the pattern]
|
|
70
|
-
|
|
71
|
-
**Avoid:**
|
|
72
|
-
[counter-example if useful]
|
|
73
|
-
|
|
74
|
-
## Exceptions
|
|
75
|
-
[Known deviations and why they exist]
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### What to capture vs. skip
|
|
79
|
-
|
|
80
|
-
**Capture:**
|
|
81
|
-
- Decisions that aren't obvious from reading a single file
|
|
82
|
-
- Patterns that repeat across the codebase
|
|
83
|
-
- Choices that differ from common defaults (e.g., "we use tabs, not spaces")
|
|
84
|
-
- Architectural boundaries (e.g., "services never import from controllers")
|
|
85
|
-
|
|
86
|
-
**Skip:**
|
|
87
|
-
- Things the language or framework enforces automatically
|
|
88
|
-
- One-off implementations with no pattern
|
|
89
|
-
- Preferences with no clear rationale
|
|
90
|
-
|
|
91
|
-
### File naming
|
|
92
|
-
|
|
93
|
-
Use lowercase, hyphen-separated names that match the category:
|
|
94
|
-
|
|
95
|
-
```
|
|
96
|
-
standards/tech-stack.md
|
|
97
|
-
standards/naming-conventions.md
|
|
98
|
-
standards/api-design.md
|
|
99
|
-
standards/component-patterns.md
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Resources
|
|
103
|
-
|
|
104
|
-
- Standards directory: `standards/`
|
|
105
|
-
- Standards guide: `standards/README.md`
|
|
106
|
-
- Next step for new feature work: `.agent/skills/brainstorming/SKILL.md` (brainstorm within discovered constraints)
|
|
107
|
-
- Next step before implementation: `.agent/skills/deploying-standards/SKILL.md`
|
|
1
|
+
---
|
|
2
|
+
name: discovering-standards
|
|
3
|
+
description: Extracts coding patterns, conventions, and architectural decisions from an existing codebase and saves them as standards files. Use when the user asks to document standards, capture patterns, extract conventions, or onboard an AI agent to an existing project.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Discovering Standards
|
|
7
|
+
|
|
8
|
+
## When to use this skill
|
|
9
|
+
|
|
10
|
+
- User asks to "document my standards", "capture my conventions", or "extract patterns from my code"
|
|
11
|
+
- Onboarding Blueprint OS to an existing project for the first time
|
|
12
|
+
- A recurring pattern has emerged that should be formalized
|
|
13
|
+
- Tribal knowledge exists in the code but not in writing
|
|
14
|
+
- Before brainstorming a new feature in an existing codebase — discover constraints first, then brainstorm within them
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
- [ ] Identify which area to document (ask user if unclear)
|
|
19
|
+
- [ ] Scan relevant files in that area
|
|
20
|
+
- [ ] Identify recurring patterns, naming conventions, and architectural decisions
|
|
21
|
+
- [ ] Draft a standards file and confirm with the user
|
|
22
|
+
- [ ] Save to `standards/<category>.md`
|
|
23
|
+
- [ ] Update `standards/README.md` index if the file is new
|
|
24
|
+
|
|
25
|
+
## Instructions
|
|
26
|
+
|
|
27
|
+
### Discovery areas
|
|
28
|
+
|
|
29
|
+
Approach one area at a time. Common areas to document:
|
|
30
|
+
|
|
31
|
+
- **Tech stack** — languages, frameworks, libraries, versions
|
|
32
|
+
- **Folder structure** — how the project is organized and why
|
|
33
|
+
- **Naming conventions** — files, variables, components, routes, database columns
|
|
34
|
+
- **Component patterns** — how UI components are structured and composed
|
|
35
|
+
- **API design** — endpoint naming, request/response shapes, error handling
|
|
36
|
+
- **Data models** — schema conventions, relationships, field naming
|
|
37
|
+
- **Testing approach** — test file location, naming, tooling, coverage expectations
|
|
38
|
+
- **Error handling** — how errors surface, are logged, and returned to clients
|
|
39
|
+
- **State management** — how application state is structured and updated
|
|
40
|
+
- **Authentication** — how auth is implemented and enforced
|
|
41
|
+
|
|
42
|
+
### Extraction process
|
|
43
|
+
|
|
44
|
+
For each area:
|
|
45
|
+
|
|
46
|
+
1. Read 3–5 representative files
|
|
47
|
+
2. Identify what is consistent across them (naming, structure, patterns)
|
|
48
|
+
3. Note any exceptions — are they intentional or accidental?
|
|
49
|
+
4. Write only what the agent needs to replicate the pattern, not what is obvious
|
|
50
|
+
|
|
51
|
+
### Standards file format
|
|
52
|
+
|
|
53
|
+
Save to `standards/<category>.md`:
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
# [Category] Standards
|
|
57
|
+
|
|
58
|
+
**Last updated:** [YYYY-MM-DD]
|
|
59
|
+
|
|
60
|
+
## Overview
|
|
61
|
+
[One paragraph: what this standard covers and why it exists]
|
|
62
|
+
|
|
63
|
+
## Conventions
|
|
64
|
+
|
|
65
|
+
### [Convention name]
|
|
66
|
+
[Description of the pattern]
|
|
67
|
+
|
|
68
|
+
**Example:**
|
|
69
|
+
[code example or file path showing the pattern]
|
|
70
|
+
|
|
71
|
+
**Avoid:**
|
|
72
|
+
[counter-example if useful]
|
|
73
|
+
|
|
74
|
+
## Exceptions
|
|
75
|
+
[Known deviations and why they exist]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### What to capture vs. skip
|
|
79
|
+
|
|
80
|
+
**Capture:**
|
|
81
|
+
- Decisions that aren't obvious from reading a single file
|
|
82
|
+
- Patterns that repeat across the codebase
|
|
83
|
+
- Choices that differ from common defaults (e.g., "we use tabs, not spaces")
|
|
84
|
+
- Architectural boundaries (e.g., "services never import from controllers")
|
|
85
|
+
|
|
86
|
+
**Skip:**
|
|
87
|
+
- Things the language or framework enforces automatically
|
|
88
|
+
- One-off implementations with no pattern
|
|
89
|
+
- Preferences with no clear rationale
|
|
90
|
+
|
|
91
|
+
### File naming
|
|
92
|
+
|
|
93
|
+
Use lowercase, hyphen-separated names that match the category:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
standards/tech-stack.md
|
|
97
|
+
standards/naming-conventions.md
|
|
98
|
+
standards/api-design.md
|
|
99
|
+
standards/component-patterns.md
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Resources
|
|
103
|
+
|
|
104
|
+
- Standards directory: `standards/`
|
|
105
|
+
- Standards guide: `standards/README.md`
|
|
106
|
+
- Next step for new feature work: `.agent/skills/brainstorming/SKILL.md` (brainstorm within discovered constraints)
|
|
107
|
+
- Next step before implementation: `.agent/skills/deploying-standards/SKILL.md`
|
|
@@ -1,133 +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
|
-
```
|
|
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
|
@@ -81,6 +81,8 @@ npx blueprint-os init
|
|
|
81
81
|
|
|
82
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
83
|
|
|
84
|
+
**Conditional copy:** If `standards/` or `references/` already contain project content (files beyond the template), they are preserved and not overwritten.
|
|
85
|
+
|
|
84
86
|
**Or copy manually:** Place the `.agent/` folder, `standards/` folder, and `references/` folder at the root of your project:
|
|
85
87
|
|
|
86
88
|
```
|
|
@@ -132,6 +134,28 @@ your-project/
|
|
|
132
134
|
3. If not found: ask your agent "Read .agent/skills/creating-skills/SKILL.md and create a skill for [task]"
|
|
133
135
|
```
|
|
134
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
|
+
|
|
135
159
|
---
|
|
136
160
|
|
|
137
161
|
## Skills Index
|
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 };
|