@ariestools/cli 0.1.6
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/README.md +1251 -0
- package/dist/bin/aries.mjs +366765 -0
- package/dist/plugins/xy-readme/.claude-plugin/plugin.json +5 -0
- package/dist/plugins/xy-readme/skills/readme-audit/SKILL.md +187 -0
- package/dist/plugins/xy-readme/skills/readme-author/SKILL.md +293 -0
- package/dist/plugins/xy-readme/skills/readme-init/SKILL.md +243 -0
- package/package.json +71 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: readme-init
|
|
3
|
+
description: Bootstrap a brand-new package README from scratch in the xylabs / xyo style. Reads package.json for name and description, detects the package tier, and emits a complete README.md ready for the user to fill in About / What's Inside content. Use when adding a new package and there is no README.md yet.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# README Init (xylabs / xyo convention)
|
|
7
|
+
|
|
8
|
+
This skill creates a fresh `README.md` for a package that doesn't have one
|
|
9
|
+
yet. It is the bootstrap counterpart to `readme-author` — the latter
|
|
10
|
+
*authors and updates* an existing or partially-written README; this skill
|
|
11
|
+
*creates one from scratch*.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
- Adding a new package to a monorepo that has no `README.md`.
|
|
16
|
+
- Replacing a placeholder/empty README with the full template.
|
|
17
|
+
|
|
18
|
+
If a `README.md` already exists with non-trivial content, route the work to
|
|
19
|
+
the `readme-author` skill instead — don't overwrite hand-written content.
|
|
20
|
+
|
|
21
|
+
## Inputs
|
|
22
|
+
|
|
23
|
+
Run from the package directory (the one containing `package.json`).
|
|
24
|
+
|
|
25
|
+
Read the following from `package.json`:
|
|
26
|
+
|
|
27
|
+
- `name` — the full package name (e.g. `@xyo-network/xl1-blockies`).
|
|
28
|
+
- `description` — used as the tagline; if missing, prompt the user for one
|
|
29
|
+
before continuing.
|
|
30
|
+
- `exports` — used to detect whether the package has subpath exports.
|
|
31
|
+
- `dependencies` / `peerDependencies` — used for tier detection and to
|
|
32
|
+
decide whether to include a "Peer Dependencies" section.
|
|
33
|
+
|
|
34
|
+
## Tier detection (heuristic)
|
|
35
|
+
|
|
36
|
+
Inspect `package.json` and the source layout:
|
|
37
|
+
|
|
38
|
+
- **Aggregate** — most or all `dependencies` are `workspace:*` siblings;
|
|
39
|
+
`src/` is mostly re-exports (a single `index.ts` re-exporting from siblings,
|
|
40
|
+
or only a small surface of glue code). Use the aggregate template.
|
|
41
|
+
- **Mid-tier** — substantial `src/` with multiple modules; may have multiple
|
|
42
|
+
`exports` entries. Use the mid-tier template.
|
|
43
|
+
- **Leaf** — small, single-purpose; one or a few source files; few
|
|
44
|
+
dependencies. Use the leaf template.
|
|
45
|
+
|
|
46
|
+
When unsure between mid-tier and leaf, prefer mid-tier (the resulting README
|
|
47
|
+
just has more sections; the user can prune).
|
|
48
|
+
|
|
49
|
+
## Steps
|
|
50
|
+
|
|
51
|
+
1. **Verify there is no existing README.** If `README.md` exists and has
|
|
52
|
+
more than a few placeholder lines, stop and ask the user what to do.
|
|
53
|
+
2. **Read `package.json`.** Extract `name`, `description`, `exports`,
|
|
54
|
+
`dependencies`, `peerDependencies`.
|
|
55
|
+
3. **Determine tier** using the heuristic above.
|
|
56
|
+
4. **Pick a template** below and substitute `{{NAME}}` and `{{TAGLINE}}`
|
|
57
|
+
throughout. For aggregate packages, also fill in the description and
|
|
58
|
+
component package list.
|
|
59
|
+
5. **Leave hand-written sections as TODO placeholders.** "About" /
|
|
60
|
+
"Description" and "What's Inside" content cannot be derived from
|
|
61
|
+
`package.json`; emit them as HTML comments the user fills in:
|
|
62
|
+
|
|
63
|
+
```markdown
|
|
64
|
+
## About
|
|
65
|
+
|
|
66
|
+
<!-- TODO: 1–3 paragraphs explaining what this package is, how it
|
|
67
|
+
relates to its umbrella aggregate, and when to install it directly
|
|
68
|
+
vs. via the aggregate. -->
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
6. **Always include the verbatim Maintainers table, License, and Credits
|
|
72
|
+
sections** from the `readme-author` skill.
|
|
73
|
+
7. **Verify reference links resolve** by reminding the user that the npm
|
|
74
|
+
badge will only render once the package is published. The license badge
|
|
75
|
+
uses the package name's npm shield endpoint; if the package isn't on npm
|
|
76
|
+
yet, the badge will render as "n/a" until publish.
|
|
77
|
+
|
|
78
|
+
## Templates
|
|
79
|
+
|
|
80
|
+
### Leaf
|
|
81
|
+
|
|
82
|
+
Use when the package is small and single-purpose.
|
|
83
|
+
|
|
84
|
+
````markdown
|
|
85
|
+
[![logo][]][logo-link]
|
|
86
|
+
|
|
87
|
+
# {{NAME}}
|
|
88
|
+
|
|
89
|
+
[![npm-badge][]][npm-link]
|
|
90
|
+
[![license-badge][]][license-link]
|
|
91
|
+
|
|
92
|
+
> {{TAGLINE}}
|
|
93
|
+
|
|
94
|
+
## About
|
|
95
|
+
|
|
96
|
+
<!-- TODO: 1–2 paragraphs explaining what this package is and when to use it. -->
|
|
97
|
+
|
|
98
|
+
## Install
|
|
99
|
+
|
|
100
|
+
Using npm:
|
|
101
|
+
|
|
102
|
+
```sh
|
|
103
|
+
npm i --save {{NAME}}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Using yarn:
|
|
107
|
+
|
|
108
|
+
```sh
|
|
109
|
+
yarn add {{NAME}}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Using pnpm:
|
|
113
|
+
|
|
114
|
+
```sh
|
|
115
|
+
pnpm add {{NAME}}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Using bun:
|
|
119
|
+
|
|
120
|
+
```sh
|
|
121
|
+
bun add {{NAME}}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## What's Inside
|
|
125
|
+
|
|
126
|
+
<!-- TODO: bullet list of public surface (components, functions, types). -->
|
|
127
|
+
|
|
128
|
+
## Building Locally
|
|
129
|
+
|
|
130
|
+
```sh
|
|
131
|
+
xy build {{NAME}}
|
|
132
|
+
xy test {{NAME}}
|
|
133
|
+
xy lint {{NAME}}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Maintainers
|
|
137
|
+
|
|
138
|
+
<table>
|
|
139
|
+
<tr>
|
|
140
|
+
<td align="center" valign="top" width="120">
|
|
141
|
+
<a href="https://github.com/arietrouw">
|
|
142
|
+
<img src="https://github.com/arietrouw.png" width="80" height="80" alt="Arie Trouw" /><br />
|
|
143
|
+
<sub><b>Arie Trouw</b></sub>
|
|
144
|
+
</a>
|
|
145
|
+
<br />
|
|
146
|
+
<a href="https://arietrouw.com">arietrouw.com</a>
|
|
147
|
+
</td>
|
|
148
|
+
<td align="center" valign="top" width="120">
|
|
149
|
+
<a href="https://github.com/jonesmac">
|
|
150
|
+
<img src="https://github.com/jonesmac.png" width="80" height="80" alt="Matt Jones" /><br />
|
|
151
|
+
<sub><b>Matt Jones</b></sub>
|
|
152
|
+
</a>
|
|
153
|
+
</td>
|
|
154
|
+
<td align="center" valign="top" width="120">
|
|
155
|
+
<a href="https://github.com/JoelBCarter">
|
|
156
|
+
<img src="https://github.com/JoelBCarter.png" width="80" height="80" alt="Joel Carter" /><br />
|
|
157
|
+
<sub><b>Joel Carter</b></sub>
|
|
158
|
+
</a>
|
|
159
|
+
</td>
|
|
160
|
+
</tr>
|
|
161
|
+
</table>
|
|
162
|
+
|
|
163
|
+
## License
|
|
164
|
+
|
|
165
|
+
See the [LICENSE](./LICENSE) file (LGPL-3.0-only).
|
|
166
|
+
|
|
167
|
+
## Credits
|
|
168
|
+
|
|
169
|
+
[Made with 🔥 and ❄️ by XYO](https://xyo.network)
|
|
170
|
+
|
|
171
|
+
[logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
|
|
172
|
+
[logo-link]: https://xyo.network
|
|
173
|
+
|
|
174
|
+
[npm-badge]: https://img.shields.io/npm/v/{{NAME}}.svg
|
|
175
|
+
[npm-link]: https://www.npmjs.com/package/{{NAME}}
|
|
176
|
+
|
|
177
|
+
[license-badge]: https://img.shields.io/npm/l/{{NAME}}.svg
|
|
178
|
+
[license-link]: ./LICENSE
|
|
179
|
+
````
|
|
180
|
+
|
|
181
|
+
### Mid-tier
|
|
182
|
+
|
|
183
|
+
Like the leaf template, plus a Subpath Exports section if `package.json#exports`
|
|
184
|
+
has more than one entry. Insert this section between Install and What's Inside:
|
|
185
|
+
|
|
186
|
+
```markdown
|
|
187
|
+
## Subpath Exports
|
|
188
|
+
|
|
189
|
+
<!-- TODO: list each entry from package.json#exports with a one-line
|
|
190
|
+
reason for why it's a separate subpath. -->
|
|
191
|
+
|
|
192
|
+
- `{{NAME}}` — main barrel
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Aggregate
|
|
196
|
+
|
|
197
|
+
Use the leaf template as the base, and:
|
|
198
|
+
|
|
199
|
+
1. Insert a Table of Contents after the tagline:
|
|
200
|
+
|
|
201
|
+
```markdown
|
|
202
|
+
## Table of Contents
|
|
203
|
+
|
|
204
|
+
- [Description](#description)
|
|
205
|
+
- [Install](#install)
|
|
206
|
+
- [What's Inside](#whats-inside)
|
|
207
|
+
- [Building Locally](#building-locally)
|
|
208
|
+
- [Maintainers](#maintainers)
|
|
209
|
+
- [License](#license)
|
|
210
|
+
- [Credits](#credits)
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
2. Replace `## About` with `## Description`.
|
|
214
|
+
3. In the Description placeholder, list the workspace siblings this package
|
|
215
|
+
re-exports as bullets, each linking to its npm page.
|
|
216
|
+
4. Optional: replace the leaf-style "Building Locally" with the unscoped
|
|
217
|
+
form used in aggregate-root READMEs:
|
|
218
|
+
|
|
219
|
+
````markdown
|
|
220
|
+
## Building Locally
|
|
221
|
+
|
|
222
|
+
From the repo root:
|
|
223
|
+
|
|
224
|
+
```sh
|
|
225
|
+
xy build # compile + publint + deplint + lint
|
|
226
|
+
xy test # vitest
|
|
227
|
+
xy lint # eslint
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Scope to this package: `xy build {{NAME}}`.
|
|
231
|
+
````
|
|
232
|
+
|
|
233
|
+
## Output
|
|
234
|
+
|
|
235
|
+
Write the assembled file to `./README.md` in the package directory. Then
|
|
236
|
+
remind the user:
|
|
237
|
+
|
|
238
|
+
- Hand-written sections (`## About` / `## Description`, `## What's Inside`,
|
|
239
|
+
`## Subpath Exports` if applicable) are TODOs to fill in.
|
|
240
|
+
- The Maintainers table is a default — edit it if the maintainers list
|
|
241
|
+
differs.
|
|
242
|
+
- Run the `readme-audit` skill once you've filled in the TODOs to verify
|
|
243
|
+
alignment with the convention.
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ariestools/cli",
|
|
3
|
+
"version": "0.1.6",
|
|
4
|
+
"description": "Aries Tools CLI - A suite of tools by Arie Trouw",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ariestools",
|
|
7
|
+
"cli",
|
|
8
|
+
"typescript"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://ariestools.ai",
|
|
11
|
+
"license": "UNLICENSED",
|
|
12
|
+
"author": {
|
|
13
|
+
"name": "Arie Trouw",
|
|
14
|
+
"email": "support@ariestools.ai",
|
|
15
|
+
"url": "https://ariestools.ai"
|
|
16
|
+
},
|
|
17
|
+
"sideEffects": false,
|
|
18
|
+
"type": "module",
|
|
19
|
+
"bin": {
|
|
20
|
+
"aries": "dist/bin/aries.mjs"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist/bin",
|
|
24
|
+
"dist/plugins",
|
|
25
|
+
"README.md"
|
|
26
|
+
],
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@opentelemetry/api": "~1.9.1",
|
|
29
|
+
"@xyo-network/sdk-protocol": "~7.2.1",
|
|
30
|
+
"async-mutex": "~0.5.0",
|
|
31
|
+
"ethers": "~6.17.0",
|
|
32
|
+
"imghash": "~1.1.4",
|
|
33
|
+
"lmdb": "~3.5.6",
|
|
34
|
+
"pdq-wasm": "~0.3.9",
|
|
35
|
+
"sharp": "~0.35.3",
|
|
36
|
+
"sharp-phash": "~2.2.0",
|
|
37
|
+
"zod": "~4.4.3",
|
|
38
|
+
"@ariestools/aries-chain-serve": "~0.1.6",
|
|
39
|
+
"@xyo-network/wallet-xl1-cli": "~0.1.6"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@ariestools/sdk": "~8.1.1",
|
|
43
|
+
"@ariestools/toolchain": "~8.7.15",
|
|
44
|
+
"@ariestools/tsconfig": "~8.7.15",
|
|
45
|
+
"@metamask/json-rpc-engine": "~10.5.0",
|
|
46
|
+
"@opentelemetry/sdk-trace-base": "~2.9.0",
|
|
47
|
+
"@types/node": "~26.1.1",
|
|
48
|
+
"@xyo-network/sdk": "~7.2.1",
|
|
49
|
+
"@xyo-network/xl1-sdk": "~4.4.7",
|
|
50
|
+
"eslint": "~10.7.0",
|
|
51
|
+
"rolldown": "~1.2.0",
|
|
52
|
+
"tsx": "~4.23.1",
|
|
53
|
+
"typescript": "~6.0.3",
|
|
54
|
+
"vite": "~8.1.4",
|
|
55
|
+
"vitest": "~4.1.10",
|
|
56
|
+
"web3-types": "~1.10.0",
|
|
57
|
+
"yargs": "~18.0.0",
|
|
58
|
+
"@ariestools/cli-lib": "~0.1.6"
|
|
59
|
+
},
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=18.17.1"
|
|
62
|
+
},
|
|
63
|
+
"engineStrict": true,
|
|
64
|
+
"publishConfig": {
|
|
65
|
+
"access": "public"
|
|
66
|
+
},
|
|
67
|
+
"scripts": {
|
|
68
|
+
"package-clean": "rm -rf dist bundle",
|
|
69
|
+
"package-compile": "tsc -p tsconfig.build.json --noEmit && rolldown -c rolldown.config.ts && tsx scripts/buildBundle.ts"
|
|
70
|
+
}
|
|
71
|
+
}
|