rsc-universal 0.1.3 → 0.1.4
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 +9 -0
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/scripts/lib/ui.js +16 -0
- package/scripts/rsc.js +4 -3
package/README.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
+
```
|
|
4
|
+
██████╗ ███████╗ ██████╗
|
|
5
|
+
██╔══██╗██╔════╝██╔════╝
|
|
6
|
+
██████╔╝███████╗██║
|
|
7
|
+
██╔══██╗╚════██║██║
|
|
8
|
+
██║ ██║███████║╚██████╗
|
|
9
|
+
╚═╝ ╚═╝╚══════╝ ╚═════╝
|
|
10
|
+
```
|
|
11
|
+
|
|
3
12
|
# `rsc` — 231 agent skills, one CLI, zero bloat
|
|
4
13
|
|
|
5
14
|
**A self-recommending skill catalog for Claude Code, Cursor, Codex & Gemini.**
|
package/manifest.json
CHANGED
package/package.json
CHANGED
package/scripts/lib/ui.js
CHANGED
|
@@ -33,6 +33,22 @@ const C = {
|
|
|
33
33
|
green: (s) => `\x1b[32m${s}\x1b[39m`,
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
+
// ASCII wordmark shown at the top of the wizard.
|
|
37
|
+
export function banner() {
|
|
38
|
+
const tty = Boolean(stdout.isTTY);
|
|
39
|
+
const art = [
|
|
40
|
+
'',
|
|
41
|
+
' ██████╗ ███████╗ ██████╗',
|
|
42
|
+
' ██╔══██╗██╔════╝██╔════╝',
|
|
43
|
+
' ██████╔╝███████╗██║ ',
|
|
44
|
+
' ██╔══██╗╚════██║██║ ',
|
|
45
|
+
' ██║ ██║███████║╚██████╗',
|
|
46
|
+
' ╚═╝ ╚═╝╚══════╝ ╚═════╝',
|
|
47
|
+
];
|
|
48
|
+
for (const l of art) say(tty ? C.cyan(l) : l);
|
|
49
|
+
say((tty ? C.dim(' 231 skills · one CLI · zero bloat') : ' 231 skills · one CLI · zero bloat'));
|
|
50
|
+
}
|
|
51
|
+
|
|
36
52
|
// Repaint a fixed block of lines in place (cursor ends just below the block).
|
|
37
53
|
function makePainter() {
|
|
38
54
|
let height = 0;
|
package/scripts/rsc.js
CHANGED
|
@@ -6,7 +6,7 @@ import { rank } from './consult.js';
|
|
|
6
6
|
import { expandRecommends, toOutcomes, hasOutcome } from './lib/recommend.js';
|
|
7
7
|
import { applyInstall, listInstalled, uninstall } from './install-apply.js';
|
|
8
8
|
import { doctor } from './doctor.js';
|
|
9
|
-
import { ask, say, yes, select, pickFrom } from './lib/ui.js';
|
|
9
|
+
import { ask, say, yes, select, pickFrom, banner } from './lib/ui.js';
|
|
10
10
|
import { refreshRegistry, registryStatus } from './lib/registry.js';
|
|
11
11
|
import { DOMAINS } from './lib/domains.js';
|
|
12
12
|
|
|
@@ -94,8 +94,9 @@ function printNextSteps(target, ids) {
|
|
|
94
94
|
|
|
95
95
|
async function wizard() {
|
|
96
96
|
const m = loadManifest();
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
banner();
|
|
98
|
+
say(' the skill catalog for your assistant (Claude Code · Cursor · Codex · Gemini)\n');
|
|
99
|
+
const choice = await select('What do you want to do?', [
|
|
99
100
|
{ key: 'base', label: 'Base install — the essentials (orient + suggest + harness + init)' },
|
|
100
101
|
{ key: 'sdd', label: 'Base + Spec-Driven Development — the specify → plan → implement → ship flow' },
|
|
101
102
|
{ key: 'manual', label: 'Pick skills by hand, by area' },
|