@adobe/data-ai 0.9.74 → 0.9.76
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/plugin.json +1 -1
- package/README.md +12 -16
- package/bin/cli.mjs +27 -57
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,36 +4,32 @@ Cross-agent architecture skills for [`@adobe/data`](https://www.npmjs.com/packag
|
|
|
4
4
|
|
|
5
5
|
Skills version in lockstep with the library: `@adobe/data-ai@x.y.z` describes `@adobe/data@x.y.z`.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
There are two distribution paths, one per agent family — they do **not** overlap:
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- **Claude Code → marketplace plugin** (see below). The installer never writes into `.claude/skills/`, so it can't collide with your own Claude skills.
|
|
10
|
+
- **Cursor / Codex / other `.agents`-standard agents → `npx … install`** (below).
|
|
11
|
+
|
|
12
|
+
## Install (Cursor, Codex, `.agents` agents)
|
|
13
|
+
|
|
14
|
+
The installer copies the skill folders into a single namespaced bundle directory that agents which recurse `.agents/skills/` discover:
|
|
10
15
|
|
|
11
16
|
```sh
|
|
12
17
|
npx @adobe/data-ai@latest install
|
|
13
18
|
```
|
|
14
19
|
|
|
15
|
-
This writes
|
|
16
|
-
|
|
17
|
-
| Root | Agent | Notes |
|
|
18
|
-
| --- | --- | --- |
|
|
19
|
-
| `.claude/skills/<name>/` | Claude Code | No recursion — skills must be flat. |
|
|
20
|
-
| `.agents/skills/<name>/` | Cursor, Codex | Tool-neutral; other Agent-Skills agents pick these up. |
|
|
20
|
+
This writes `.agents/skills/adobe-data-ai/<name>/SKILL.md` for each skill. The whole `adobe-data-ai/` directory belongs to this package, so a re-run is a clean wipe-and-recopy that never touches skills you authored elsewhere. Commit the result to share it with your team.
|
|
21
21
|
|
|
22
22
|
Options:
|
|
23
23
|
|
|
24
24
|
```sh
|
|
25
|
-
npx @adobe/data-ai@latest install --
|
|
26
|
-
npx @adobe/data-ai@latest install --
|
|
27
|
-
npx @adobe/data-ai@latest
|
|
28
|
-
npx @adobe/data-ai@latest install --dir=./sub # into a specific base dir
|
|
29
|
-
npx @adobe/data-ai@latest list # show bundled skills
|
|
25
|
+
npx @adobe/data-ai@latest install --global # into ~/.agents/skills/adobe-data-ai/
|
|
26
|
+
npx @adobe/data-ai@latest install --dir=./sub # into a specific base dir
|
|
27
|
+
npx @adobe/data-ai@latest list # show bundled skills
|
|
30
28
|
```
|
|
31
29
|
|
|
32
|
-
Each root gets a `.data-ai.json` manifest recording which skills this package owns, so a re-run prunes skills we no longer ship without touching skills you added yourself.
|
|
33
|
-
|
|
34
30
|
## Install (Claude Code plugin)
|
|
35
31
|
|
|
36
|
-
Claude
|
|
32
|
+
Claude Code does not scan `.agents/`; it consumes the skills as a native plugin from the `adobe/data` marketplace — no npm needed.
|
|
37
33
|
|
|
38
34
|
Interactive:
|
|
39
35
|
|
package/bin/cli.mjs
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// Installer for the @adobe/data-ai skill bundle.
|
|
2
|
+
// Installer for the @adobe/data-ai skill bundle (Cursor / Codex / .agents-standard agents).
|
|
3
3
|
//
|
|
4
|
-
// Copies the
|
|
5
|
-
//
|
|
6
|
-
// bundle works across Claude Code, Cursor, and Codex:
|
|
4
|
+
// Copies the SKILL.md folders shipped in this package into a single namespaced
|
|
5
|
+
// bundle directory that agents which recurse `.agents/skills/` will discover:
|
|
7
6
|
//
|
|
8
|
-
// .
|
|
9
|
-
// .agents/skills/<name>/ Cursor, Codex (tool-neutral, future agents)
|
|
7
|
+
// .agents/skills/adobe-data-ai/<name>/SKILL.md
|
|
10
8
|
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
9
|
+
// We own the `adobe-data-ai/` directory outright, so a refresh is a clean
|
|
10
|
+
// wipe-and-recopy — it never touches skills you authored elsewhere.
|
|
11
|
+
//
|
|
12
|
+
// Claude Code is intentionally NOT a target: it does not scan `.agents/`, and
|
|
13
|
+
// copying into `.claude/skills/` could collide with a user's own skills.
|
|
14
|
+
// Claude consumes these as the `adobe-data-ai` marketplace plugin instead
|
|
15
|
+
// (see README).
|
|
14
16
|
|
|
15
17
|
import {
|
|
16
18
|
cpSync,
|
|
@@ -31,11 +33,8 @@ const skillsSrc = join(pkgRoot, "skills");
|
|
|
31
33
|
const pkg = JSON.parse(readFileSync(join(pkgRoot, "package.json"), "utf8"));
|
|
32
34
|
const { name: PKG_NAME, version: VERSION } = pkg;
|
|
33
35
|
|
|
34
|
-
//
|
|
35
|
-
const
|
|
36
|
-
claude: (base) => join(base, ".claude", "skills"),
|
|
37
|
-
agents: (base) => join(base, ".agents", "skills"),
|
|
38
|
-
};
|
|
36
|
+
// Namespaced bundle folder — the whole directory belongs to this package.
|
|
37
|
+
const BUNDLE = "adobe-data-ai";
|
|
39
38
|
|
|
40
39
|
function discoverSkills() {
|
|
41
40
|
if (!existsSync(skillsSrc)) return [];
|
|
@@ -45,32 +44,15 @@ function discoverSkills() {
|
|
|
45
44
|
.sort();
|
|
46
45
|
}
|
|
47
46
|
|
|
48
|
-
function installTo(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
// Prune skills we previously owned but no longer ship.
|
|
53
|
-
if (existsSync(manifestPath)) {
|
|
54
|
-
try {
|
|
55
|
-
const prev = JSON.parse(readFileSync(manifestPath, "utf8"));
|
|
56
|
-
for (const name of prev.skills ?? []) {
|
|
57
|
-
if (!skills.includes(name) && existsSync(join(rootDir, name))) {
|
|
58
|
-
rmSync(join(rootDir, name), { recursive: true, force: true });
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
} catch {
|
|
62
|
-
// Unreadable manifest — ignore and re-stamp below.
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
47
|
+
function installTo(bundleDir, skills) {
|
|
48
|
+
// We own this directory — wipe and recopy for a clean refresh.
|
|
49
|
+
rmSync(bundleDir, { recursive: true, force: true });
|
|
50
|
+
mkdirSync(bundleDir, { recursive: true });
|
|
66
51
|
for (const name of skills) {
|
|
67
|
-
|
|
68
|
-
rmSync(dest, { recursive: true, force: true });
|
|
69
|
-
cpSync(join(skillsSrc, name), dest, { recursive: true });
|
|
52
|
+
cpSync(join(skillsSrc, name), join(bundleDir, name), { recursive: true });
|
|
70
53
|
}
|
|
71
|
-
|
|
72
54
|
writeFileSync(
|
|
73
|
-
|
|
55
|
+
join(bundleDir, ".data-ai.json"),
|
|
74
56
|
JSON.stringify({ package: PKG_NAME, version: VERSION, skills }, null, 2) + "\n",
|
|
75
57
|
);
|
|
76
58
|
}
|
|
@@ -81,8 +63,6 @@ function parseArgs(argv) {
|
|
|
81
63
|
let dir = null;
|
|
82
64
|
for (const a of argv) {
|
|
83
65
|
if (a === "--global" || a === "-g") flags.add("global");
|
|
84
|
-
else if (a === "--claude") flags.add("claude");
|
|
85
|
-
else if (a === "--agents" || a === "--cursor") flags.add("agents");
|
|
86
66
|
else if (a === "--help" || a === "-h") flags.add("help");
|
|
87
67
|
else if (a.startsWith("--dir=")) dir = a.slice("--dir=".length);
|
|
88
68
|
else if (!a.startsWith("-")) positional.push(a);
|
|
@@ -92,26 +72,22 @@ function parseArgs(argv) {
|
|
|
92
72
|
|
|
93
73
|
const HELP = `${PKG_NAME} v${VERSION}
|
|
94
74
|
|
|
95
|
-
Install
|
|
75
|
+
Install the architecture-skill bundle for Cursor, Codex, and other agents
|
|
76
|
+
that scan .agents/skills/. (Claude Code uses the marketplace plugin instead.)
|
|
96
77
|
|
|
97
78
|
Usage:
|
|
98
79
|
npx ${PKG_NAME}@latest install [options]
|
|
99
80
|
npx ${PKG_NAME}@latest list
|
|
100
81
|
|
|
101
82
|
Commands:
|
|
102
|
-
install Copy skills into
|
|
83
|
+
install Copy skills into .agents/skills/${BUNDLE}/ (default).
|
|
103
84
|
list Print the skills bundled in this package.
|
|
104
85
|
|
|
105
86
|
Options:
|
|
106
|
-
--
|
|
107
|
-
--agents Install only into .agents/skills/ (Cursor, Codex)
|
|
108
|
-
--cursor Alias for --agents
|
|
109
|
-
--global, -g Install into your home directory (~/.claude, ~/.agents)
|
|
87
|
+
--global, -g Install into your home directory (~/.agents/skills/${BUNDLE}/)
|
|
110
88
|
instead of the current project.
|
|
111
89
|
--dir=<path> Base directory to install into (default: cwd).
|
|
112
90
|
--help, -h Show this help.
|
|
113
|
-
|
|
114
|
-
With no target flag, installs into both .claude/skills and .agents/skills.
|
|
115
91
|
`;
|
|
116
92
|
|
|
117
93
|
function main() {
|
|
@@ -143,18 +119,12 @@ function main() {
|
|
|
143
119
|
}
|
|
144
120
|
|
|
145
121
|
const base = flags.has("global") ? homedir() : dir ? resolve(dir) : process.cwd();
|
|
122
|
+
const bundleDir = join(base, ".agents", "skills", BUNDLE);
|
|
146
123
|
|
|
147
|
-
|
|
148
|
-
if (flags.has("claude")) chosen.push("claude");
|
|
149
|
-
if (flags.has("agents")) chosen.push("agents");
|
|
150
|
-
if (chosen.length === 0) chosen.push("claude", "agents");
|
|
124
|
+
installTo(bundleDir, skills);
|
|
151
125
|
|
|
152
|
-
process.stdout.write(`
|
|
153
|
-
|
|
154
|
-
const rootDir = ROOTS[key](base);
|
|
155
|
-
installTo(rootDir, skills);
|
|
156
|
-
process.stdout.write(` ${rootDir}\n`);
|
|
157
|
-
}
|
|
126
|
+
process.stdout.write(`Installed ${skills.length} skill(s) from ${PKG_NAME} v${VERSION}\n`);
|
|
127
|
+
process.stdout.write(` ${bundleDir}\n`);
|
|
158
128
|
process.stdout.write(`Skills: ${skills.join(", ")}\n`);
|
|
159
129
|
}
|
|
160
130
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/data-ai",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.76",
|
|
4
4
|
"description": "Cross-agent architecture skills for @adobe/data — installable as a Claude Code plugin or copied into any Agent-Skills-compatible agent (Cursor, Codex).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|