@onlooker-community/ecosystem 0.0.2
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/.claude-plugin/marketplace.json +26 -0
- package/.claude-plugin/plugin.json +17 -0
- package/.github/workflows/release.yml +46 -0
- package/.markdownlint.json +17 -0
- package/.release-please-manifest.json +3 -0
- package/CHANGELOG.md +10 -0
- package/LICENSE +21 -0
- package/README.md +31 -0
- package/biome.json +46 -0
- package/install.sh +171 -0
- package/mise.toml +2 -0
- package/package.json +37 -0
- package/release-please-config.json +40 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "onlooker-community",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "Onlooker Community",
|
|
5
|
+
"email": "community@onlooker.dev"
|
|
6
|
+
},
|
|
7
|
+
"metadata": {
|
|
8
|
+
"description": "TODO Fill this out"
|
|
9
|
+
},
|
|
10
|
+
"plugins": [
|
|
11
|
+
{
|
|
12
|
+
"name": "ecosystem",
|
|
13
|
+
"source": "./",
|
|
14
|
+
"description": "Fill this out",
|
|
15
|
+
"version": "0.0.2",
|
|
16
|
+
"author": {
|
|
17
|
+
"name": "Onlooker Community"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://onlooker.dev",
|
|
20
|
+
"repository": "https://github.com/onlooker-community/ecosystem",
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"keywords": [],
|
|
23
|
+
"tags": []
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ecosystem",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "TODO fill this out",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Onlooker Community",
|
|
7
|
+
"url": "https://onlooker.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://onlooker.dev",
|
|
10
|
+
"repository": "https://github.com/onlooker-community/ecosystem",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"skills": [
|
|
13
|
+
"./skills/",
|
|
14
|
+
"./commands/"
|
|
15
|
+
],
|
|
16
|
+
"agents": []
|
|
17
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
concurrency:
|
|
4
|
+
group: ${{ github.workflow }}
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: write
|
|
13
|
+
pull-requests: write
|
|
14
|
+
issues: write
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
release-please:
|
|
18
|
+
name: Release Please
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- name: Create Release
|
|
22
|
+
id: release
|
|
23
|
+
uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4.4.0
|
|
24
|
+
with:
|
|
25
|
+
# Use a PAT instead of GITHUB_TOKEN so the release PR triggers
|
|
26
|
+
# downstream workflows (CI, etc.). Events caused by GITHUB_TOKEN
|
|
27
|
+
# deliberately do not fan out to other workflows; that policy
|
|
28
|
+
# leaves release PRs unchecked. Set RELEASE_PLEASE_PAT to a
|
|
29
|
+
# fine-grained token with Contents:write + Pull requests:write
|
|
30
|
+
# scoped to this repo.
|
|
31
|
+
token: ${{ secrets.RELEASE_PLEASE_PAT }}
|
|
32
|
+
|
|
33
|
+
- name: Setup Node
|
|
34
|
+
uses: actions/setup-node@v6
|
|
35
|
+
with:
|
|
36
|
+
node-version: '22'
|
|
37
|
+
|
|
38
|
+
- name: Publish to npm
|
|
39
|
+
if: ${{ steps.release.outputs.releases_created == 'true' }}
|
|
40
|
+
env:
|
|
41
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
42
|
+
PATHS_RELEASED: ${{ steps.release.outputs.paths_released }}
|
|
43
|
+
run: |
|
|
44
|
+
printf '%s\n' "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >> "${HOME}/.npmrc"
|
|
45
|
+
npm install
|
|
46
|
+
npm publish --access public
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"default": true,
|
|
3
|
+
"MD013": false,
|
|
4
|
+
"MD033": false,
|
|
5
|
+
"MD041": false,
|
|
6
|
+
"MD022": false,
|
|
7
|
+
"MD031": false,
|
|
8
|
+
"MD032": false,
|
|
9
|
+
"MD040": false,
|
|
10
|
+
"MD036": false,
|
|
11
|
+
"MD026": false,
|
|
12
|
+
"MD029": false,
|
|
13
|
+
"MD060": false,
|
|
14
|
+
"MD024": {
|
|
15
|
+
"siblings_only": true
|
|
16
|
+
}
|
|
17
|
+
}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.0.2](https://github.com/onlooker-community/ecosystem/compare/v0.0.1...v0.0.2) (2026-05-21)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Chores
|
|
7
|
+
|
|
8
|
+
* add .gitignore, update markdownlint configuration, and enhance biome.json settings ([edb47ed](https://github.com/onlooker-community/ecosystem/commit/edb47ed84d847f704668e99ac43e5613e25ab19f))
|
|
9
|
+
* add initial project files including configuration, scripts, and license ([dc2a803](https://github.com/onlooker-community/ecosystem/commit/dc2a8034fd5243c2d1a427ad13c0dcef2e92f713))
|
|
10
|
+
* initial commit ([71f1f79](https://github.com/onlooker-community/ecosystem/commit/71f1f7993cac154138ea0f8f0db6560a2624bfff))
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Onlooker Community
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Onlooker Ecosystem
|
|
2
|
+
|
|
3
|
+
[](https://github.com/onlooker-community/ecosystem/stargazers)
|
|
4
|
+
[](https://github.com/onlooker-community/ecosystem/network/members)
|
|
5
|
+
[](https://github.com/onlooker-community/ecosystem/graphs/contributors)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+

|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
11
|
+

|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
Agents, skills, hooks, commands, rules, and MCP configurations that power [Onlooker](https://onlooker.dev).
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
Get up and running in under 2 minutes:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Use homebrew to install Onlooker client
|
|
26
|
+
brew tap onlooker-community/tap
|
|
27
|
+
brew install onlooker
|
|
28
|
+
|
|
29
|
+
# Use the wizard to be guided through setup
|
|
30
|
+
onlooker setup
|
|
31
|
+
```
|
package/biome.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
|
|
3
|
+
"vcs": {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"clientKind": "git",
|
|
6
|
+
"useIgnoreFile": true
|
|
7
|
+
},
|
|
8
|
+
"files": {
|
|
9
|
+
"includes": ["**", "!**/node_modules"],
|
|
10
|
+
"ignoreUnknown": false
|
|
11
|
+
},
|
|
12
|
+
"formatter": {
|
|
13
|
+
"enabled": true,
|
|
14
|
+
"indentStyle": "space",
|
|
15
|
+
"indentWidth": 2,
|
|
16
|
+
"lineWidth": 120,
|
|
17
|
+
"lineEnding": "lf"
|
|
18
|
+
},
|
|
19
|
+
"linter": {
|
|
20
|
+
"enabled": true,
|
|
21
|
+
"rules": {
|
|
22
|
+
"recommended": true
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"javascript": {
|
|
26
|
+
"formatter": {
|
|
27
|
+
"quoteStyle": "single",
|
|
28
|
+
"semicolons": "always",
|
|
29
|
+
"trailingCommas": "all",
|
|
30
|
+
"arrowParentheses": "always"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"json": {
|
|
34
|
+
"formatter": {
|
|
35
|
+
"trailingCommas": "none"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"assist": {
|
|
39
|
+
"enabled": true,
|
|
40
|
+
"actions": {
|
|
41
|
+
"source": {
|
|
42
|
+
"organizeImports": "on"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
package/install.sh
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# install.sh -- Install claude rules while preserving directory structure.
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# ./install.sh [--target <claude|cursor>] <language> [<language> ...]
|
|
6
|
+
#
|
|
7
|
+
# Examples:
|
|
8
|
+
# ./install.sh typescript
|
|
9
|
+
# ./install.sh typescript python golang
|
|
10
|
+
# ./install.sh --target cursor typescript
|
|
11
|
+
# ./install.sh --target cursor typescript python golang
|
|
12
|
+
#
|
|
13
|
+
# Targets:
|
|
14
|
+
# claude (default) - Install rules to ~/.claude/rules/
|
|
15
|
+
# cursor - Install rules, agents, skills, commands, and MCP to ./.cursor/
|
|
16
|
+
#
|
|
17
|
+
# This script copies rules into the target directory keeping the common/ and
|
|
18
|
+
# language-specific subdirectories intact so that:
|
|
19
|
+
# 1. Files with the same name in common/ and <language>/ don't overwrite each other.
|
|
20
|
+
# 2. Relative references (e.g. ../common/coding-style.md) remain valid.
|
|
21
|
+
|
|
22
|
+
set -euo pipefail
|
|
23
|
+
|
|
24
|
+
# Resolve symlinks -- needed when invoked as `onlooker-install` via npm/bun bin symlink
|
|
25
|
+
SCRIPT_PATH="$0"
|
|
26
|
+
while [ -L "$SCRIPT_PATH" ]; do
|
|
27
|
+
link_dir="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
28
|
+
SCRIPT_PATH="$(readlink "$SCRIPT_PATH")"
|
|
29
|
+
# Resolve relative symlinks
|
|
30
|
+
[[ "$SCRIPT_PATH" != /* ]] && SCRIPT_PATH="$link_dir/$SCRIPT_PATH"
|
|
31
|
+
done
|
|
32
|
+
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
33
|
+
RULES_DIR="$SCRIPT_DIR/rules"
|
|
34
|
+
|
|
35
|
+
# --- Parse --target flag ---
|
|
36
|
+
TARGET="claude"
|
|
37
|
+
if [[ "${1:-}" == "--target" ]]; then
|
|
38
|
+
if [[ -z "${2:-}" ]]; then
|
|
39
|
+
echo "Error: --target requires a value (claude or cursor)" >&2
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
TARGET="$2"
|
|
43
|
+
shift 2
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
if [[ "$TARGET" != "claude" && "$TARGET" != "cursor" ]]; then
|
|
47
|
+
echo "Error: unknown target '$TARGET'. Must be 'claude' or 'cursor'." >&2
|
|
48
|
+
exit 1
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
# --- Usage ---
|
|
52
|
+
if [[ $# -eq 0 ]]; then
|
|
53
|
+
echo "Usage: $0 [--target <claude|cursor>] <language> [<language> ...]"
|
|
54
|
+
echo ""
|
|
55
|
+
echo "Targets:"
|
|
56
|
+
echo " claude (default) — Install rules to ~/.claude/rules/"
|
|
57
|
+
echo " cursor — Install rules, agents, skills, commands, and MCP to ./.cursor/"
|
|
58
|
+
echo ""
|
|
59
|
+
echo "Available languages:"
|
|
60
|
+
for dir in "$RULES_DIR"/*/; do
|
|
61
|
+
name="$(basename "$dir")"
|
|
62
|
+
[[ "$name" == "common" ]] && continue
|
|
63
|
+
echo " - $name"
|
|
64
|
+
done
|
|
65
|
+
exit 1
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
# --- Claude target (existing behavior) ---
|
|
69
|
+
if [[ "$TARGET" == "claude" ]]; then
|
|
70
|
+
DEST_DIR="${CLAUDE_RULES_DIR:-$HOME/.claude/rules}"
|
|
71
|
+
|
|
72
|
+
# Warn if destination already exists (user may have local customizations)
|
|
73
|
+
if [[ -d "$DEST_DIR" ]] && [[ "$(ls -A "$DEST_DIR" 2>/dev/null)" ]]; then
|
|
74
|
+
echo "Note: $DEST_DIR/ already exists. Existing files will be overwritten."
|
|
75
|
+
echo " Back up any local customizations before proceeding."
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
# Always install common rules
|
|
79
|
+
echo "Installing common rules -> $DEST_DIR/common/"
|
|
80
|
+
mkdir -p "$DEST_DIR/common"
|
|
81
|
+
cp -r "$RULES_DIR/common/." "$DEST_DIR/common/"
|
|
82
|
+
|
|
83
|
+
# Install each requested language
|
|
84
|
+
for lang in "$@"; do
|
|
85
|
+
# Validate language name to prevent path traversal
|
|
86
|
+
if [[ ! "$lang" =~ ^[a-zA-Z0-9_-]+$ ]]; then
|
|
87
|
+
echo "Error: invalid language name '$lang'. Only alphanumeric, dash, and underscore allowed." >&2
|
|
88
|
+
continue
|
|
89
|
+
fi
|
|
90
|
+
lang_dir="$RULES_DIR/$lang"
|
|
91
|
+
if [[ ! -d "$lang_dir" ]]; then
|
|
92
|
+
echo "Warning: rules/$lang/ does not exist, skipping." >&2
|
|
93
|
+
continue
|
|
94
|
+
fi
|
|
95
|
+
echo "Installing $lang rules -> $DEST_DIR/$lang/"
|
|
96
|
+
mkdir -p "$DEST_DIR/$lang"
|
|
97
|
+
cp -r "$lang_dir/." "$DEST_DIR/$lang/"
|
|
98
|
+
done
|
|
99
|
+
|
|
100
|
+
echo "Done. Rules installed to $DEST_DIR/"
|
|
101
|
+
fi
|
|
102
|
+
|
|
103
|
+
# --- Cursor target ---
|
|
104
|
+
if [[ "$TARGET" == "cursor" ]]; then
|
|
105
|
+
DEST_DIR=".cursor"
|
|
106
|
+
CURSOR_SRC="$SCRIPT_DIR/.cursor"
|
|
107
|
+
|
|
108
|
+
echo "Installing Cursor configs to $DEST_DIR/"
|
|
109
|
+
|
|
110
|
+
# --- Rules ---
|
|
111
|
+
echo "Installing common rules -> $DEST_DIR/rules/"
|
|
112
|
+
mkdir -p "$DEST_DIR/rules"
|
|
113
|
+
# Copy common rules (flattened names like common-coding-style.md)
|
|
114
|
+
if [[ -d "$CURSOR_SRC/rules" ]]; then
|
|
115
|
+
for f in "$CURSOR_SRC/rules"/common-*.md; do
|
|
116
|
+
[[ -f "$f" ]] && cp "$f" "$DEST_DIR/rules/"
|
|
117
|
+
done
|
|
118
|
+
fi
|
|
119
|
+
|
|
120
|
+
# Install language-specific rules
|
|
121
|
+
for lang in "$@"; do
|
|
122
|
+
# Validate language name to prevent path traversal
|
|
123
|
+
if [[ ! "$lang" =~ ^[a-zA-Z0-9_-]+$ ]]; then
|
|
124
|
+
echo "Error: invalid language name '$lang'. Only alphanumeric, dash, and underscore allowed." >&2
|
|
125
|
+
continue
|
|
126
|
+
fi
|
|
127
|
+
if [[ -d "$CURSOR_SRC/rules" ]]; then
|
|
128
|
+
found=false
|
|
129
|
+
for f in "$CURSOR_SRC/rules"/${lang}-*.md; do
|
|
130
|
+
if [[ -f "$f" ]]; then
|
|
131
|
+
cp "$f" "$DEST_DIR/rules/"
|
|
132
|
+
found=true
|
|
133
|
+
fi
|
|
134
|
+
done
|
|
135
|
+
if $found; then
|
|
136
|
+
echo "Installing $lang rules -> $DEST_DIR/rules/"
|
|
137
|
+
else
|
|
138
|
+
echo "Warning: no Cursor rules for '$lang' found, skipping." >&2
|
|
139
|
+
fi
|
|
140
|
+
fi
|
|
141
|
+
done
|
|
142
|
+
|
|
143
|
+
# --- Agents ---
|
|
144
|
+
if [[ -d "$CURSOR_SRC/agents" ]]; then
|
|
145
|
+
echo "Installing agents -> $DEST_DIR/agents/"
|
|
146
|
+
mkdir -p "$DEST_DIR/agents"
|
|
147
|
+
cp -r "$CURSOR_SRC/agents/." "$DEST_DIR/agents/"
|
|
148
|
+
fi
|
|
149
|
+
|
|
150
|
+
# --- Skills ---
|
|
151
|
+
if [[ -d "$CURSOR_SRC/skills" ]]; then
|
|
152
|
+
echo "Installing skills -> $DEST_DIR/skills/"
|
|
153
|
+
mkdir -p "$DEST_DIR/skills"
|
|
154
|
+
cp -r "$CURSOR_SRC/skills/." "$DEST_DIR/skills/"
|
|
155
|
+
fi
|
|
156
|
+
|
|
157
|
+
# --- Commands ---
|
|
158
|
+
if [[ -d "$CURSOR_SRC/commands" ]]; then
|
|
159
|
+
echo "Installing commands -> $DEST_DIR/commands/"
|
|
160
|
+
mkdir -p "$DEST_DIR/commands"
|
|
161
|
+
cp -r "$CURSOR_SRC/commands/." "$DEST_DIR/commands/"
|
|
162
|
+
fi
|
|
163
|
+
|
|
164
|
+
# --- MCP Config ---
|
|
165
|
+
if [[ -f "$CURSOR_SRC/mcp.json" ]]; then
|
|
166
|
+
echo "Installing MCP config -> $DEST_DIR/mcp.json"
|
|
167
|
+
cp "$CURSOR_SRC/mcp.json" "$DEST_DIR/mcp.json"
|
|
168
|
+
fi
|
|
169
|
+
|
|
170
|
+
echo "Done. Cursor configs installed to $DEST_DIR/"
|
|
171
|
+
fi
|
package/mise.toml
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@onlooker-community/ecosystem",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Agents, skills, hooks, commands, rules, and MCP configurations that power [Onlooker](https://onlooker.dev)",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Onlooker Community",
|
|
7
|
+
"url": "https://onlooker.dev"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git:https://github.com/onlooker-community/ecosystem.git"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/onlooker-community/ecosystem#readme",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/onlooker-community/ecosystem/issues"
|
|
17
|
+
},
|
|
18
|
+
"bin": {
|
|
19
|
+
"onlooker-install": "install.sh"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"postinstall": "echo '\\n onlooker-ecosystem installed!\\n Run: npx onlooker-install typescript\\n Docs: https://github.com/onlooker-community/ecosystem\\n'",
|
|
23
|
+
"lint:check": "biome check . && markdownlint '**/*.md' --ignore node_modules",
|
|
24
|
+
"lint": "biome lint --write",
|
|
25
|
+
"format": "biome format --write",
|
|
26
|
+
"format:check": "biome format",
|
|
27
|
+
"biome:ci": "biome ci"
|
|
28
|
+
},
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=18"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@biomejs/biome": "2.4.15",
|
|
34
|
+
"globals": "^17.6.0",
|
|
35
|
+
"markdownlint-cli": "^0.48.0"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
|
|
3
|
+
"packages": {
|
|
4
|
+
".": {
|
|
5
|
+
"release-type": "node",
|
|
6
|
+
"pull-request-title-pattern": "chore: release ${version}",
|
|
7
|
+
"changelog-path": "CHANGELOG.md",
|
|
8
|
+
"include-component-in-tag": false,
|
|
9
|
+
"include-v-in-tag": true,
|
|
10
|
+
"extra-files": [
|
|
11
|
+
{
|
|
12
|
+
"type": "json",
|
|
13
|
+
"path": "package.json",
|
|
14
|
+
"jsonpath": "$.version"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "json",
|
|
18
|
+
"path": ".claude-plugin/plugin.json",
|
|
19
|
+
"jsonpath": "$.version"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "json",
|
|
23
|
+
"path": ".claude-plugin/marketplace.json",
|
|
24
|
+
"jsonpath": "$.plugins[0].version"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"changelog-sections": [
|
|
28
|
+
{ "type": "feat", "section": "Features" },
|
|
29
|
+
{ "type": "fix", "section": "Bug Fixes" },
|
|
30
|
+
{ "type": "perf", "section": "Performance" },
|
|
31
|
+
{ "type": "refactor", "section": "Refactoring" },
|
|
32
|
+
{ "type": "docs", "section": "Documentation" },
|
|
33
|
+
{ "type": "test", "section": "Tests" },
|
|
34
|
+
{ "type": "chore", "section": "Chores" },
|
|
35
|
+
{ "type": "ci", "section": "CI/CD" },
|
|
36
|
+
{ "type": "build", "section": "Build" }
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|