awesome-agents 0.1.0 → 0.1.3
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/AGENTS.md +9 -3
- package/CHANGELOG.md +51 -0
- package/README.md +66 -29
- package/docs/cli.md +44 -4
- package/docs/product/README.md +13 -2
- package/docs/product/command-model.md +63 -0
- package/docs/product/harness-targets.md +59 -0
- package/docs/product/open-questions.md +21 -0
- package/docs/product/product-scope.md +42 -0
- package/docs/product/profile-source-format.md +64 -0
- package/docs/product/safety-and-publishing.md +64 -0
- package/package.json +7 -2
- package/scripts/changelog.js +227 -0
- package/scripts/release.js +219 -0
- package/src/cli.js +56 -19
- package/src/constants.js +1 -2
- package/src/help.js +530 -0
- package/src/installer.js +200 -31
- package/src/renderers.js +5 -8
- package/src/source.js +200 -23
- package/docs/product/awesome-agents-flow-notes.md +0 -45
package/AGENTS.md
CHANGED
|
@@ -7,10 +7,16 @@ agent profiles into agent harnesses. It intentionally mirrors the command shape
|
|
|
7
7
|
of `npx skills`, but installs profile artifacts for Codex, Claude Code, and
|
|
8
8
|
OpenCode.
|
|
9
9
|
|
|
10
|
-
The canonical source format is
|
|
10
|
+
The canonical source format is repo-neutral:
|
|
11
11
|
|
|
12
|
-
- `agents/profiles/*.
|
|
13
|
-
- `agents/
|
|
12
|
+
- `agents/profiles/*.agent.yaml`: preferred YAML profile definitions.
|
|
13
|
+
- `agents/profiles/*.agf.yaml`: Agent Format-style YAML profile definitions.
|
|
14
|
+
- `agents/profiles/*.md`: Markdown profile definitions with YAML frontmatter.
|
|
15
|
+
- `agents/adapters/<harness>/*`: optional harness-specific metadata and notes.
|
|
16
|
+
|
|
17
|
+
Never hard-code a particular source repository into runtime behavior, tests, or
|
|
18
|
+
examples. Use neutral fixture/source names unless a test is explicitly about
|
|
19
|
+
source resolution.
|
|
14
20
|
|
|
15
21
|
## Setup Commands
|
|
16
22
|
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
This file is maintained by `npm run changelog` and `npm run release`. Release entries are generated from git commit history.
|
|
4
|
+
|
|
5
|
+
## 0.1.3 - 2026-07-05
|
|
6
|
+
|
|
7
|
+
Initial tracked release.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Add release automation (3ee72ed)
|
|
12
|
+
- Add chief of staff profile install support (e683a72)
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Fix flaky color-sensitive assertions in CLI tests (5262811)
|
|
17
|
+
- Fix agent profile install UX (961497c)
|
|
18
|
+
- Fix npm bin metadata (085e6ee)
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Polish CLI help and profile source support (d931ae9)
|
|
23
|
+
- Split product notes by area (1d24611)
|
|
24
|
+
- Scaffold awesome-agents CLI (e1ec6a4)
|
|
25
|
+
|
|
26
|
+
## 0.1.2 - 2026-07-05
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- Require an explicit source for `add`, `install`, and `use`; remove the hardcoded default source fallback.
|
|
31
|
+
- Replace source-specific help and documentation examples with neutral `owner/repo` examples.
|
|
32
|
+
- Parse repo-neutral YAML profile files in addition to Markdown frontmatter files.
|
|
33
|
+
- Replace source-specific test fixtures with neutral profile-source fixtures.
|
|
34
|
+
|
|
35
|
+
## 0.1.1 - 2026-07-05
|
|
36
|
+
|
|
37
|
+
Initial tracked release.
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
|
|
41
|
+
- Add release and changelog automation.
|
|
42
|
+
- Add chief of staff profile install support (e683a72)
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
|
|
46
|
+
- Fix npm bin metadata (085e6ee)
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- Split product notes by area (1d24611)
|
|
51
|
+
- Scaffold awesome-agents CLI (e1ec6a4)
|
package/README.md
CHANGED
|
@@ -4,33 +4,34 @@
|
|
|
4
4
|
It mirrors the useful parts of `npx skills`, but the unit is an operational
|
|
5
5
|
agent profile instead of a skill.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
`agents/profiles
|
|
7
|
+
Supported sources are GitHub repos, Git URLs, or local checkouts that use the
|
|
8
|
+
agent-profile source layout. Profiles are read from YAML or Markdown files under
|
|
9
|
+
`agents/profiles/`, adapted for the selected harness, and installed into the
|
|
10
10
|
right place for Codex, Claude Code, or OpenCode.
|
|
11
11
|
|
|
12
12
|
## Install And Run
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Use the CLI with `npx`:
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
node ./bin/awesome-agents.js add /Users/customer/touch-grass --agent codex --profile ios-tester --dry-run
|
|
17
|
+
npx awesome-agents add owner/repo --agent triage-agent
|
|
18
|
+
npx awesome-agents add owner/repo --agent triage-agent --harness opencode
|
|
20
19
|
```
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
From this repo during development:
|
|
23
22
|
|
|
24
23
|
```bash
|
|
25
|
-
|
|
24
|
+
npm install
|
|
25
|
+
npm test
|
|
26
|
+
node ./bin/awesome-agents.js add ./test/fixtures/profile-source --agent triage-agent --dry-run
|
|
26
27
|
```
|
|
27
28
|
|
|
28
29
|
## Commands
|
|
29
30
|
|
|
30
31
|
```bash
|
|
31
|
-
awesome-agents add
|
|
32
|
-
awesome-agents install
|
|
33
|
-
awesome-agents use <source@profile> [options]
|
|
32
|
+
awesome-agents add <source> [options]
|
|
33
|
+
awesome-agents install <source> [options] # alias for add
|
|
34
|
+
awesome-agents use <source[@profile]> [options]
|
|
34
35
|
awesome-agents list [options]
|
|
35
36
|
awesome-agents remove <profile...> [options]
|
|
36
37
|
awesome-agents update [profile...] [options]
|
|
@@ -39,25 +40,32 @@ awesome-agents init [name]
|
|
|
39
40
|
|
|
40
41
|
Useful install options:
|
|
41
42
|
|
|
42
|
-
- `--agent
|
|
43
|
-
- `--profile <slug>` or `--profile
|
|
43
|
+
- `--agent <slug>` to select an agent profile, for example `--agent triage-agent`
|
|
44
|
+
- `--profile <slug>` or `--skill <slug>` as explicit profile aliases; `--skill`
|
|
45
|
+
is command-shape compatibility and does not mean the artifact is a skill
|
|
46
|
+
- `--harness codex|claude-code|opencode|*` to select target harnesses
|
|
44
47
|
- `--all` to install all profiles to all supported harnesses
|
|
45
48
|
- `--dry-run` to preview writes
|
|
46
|
-
- `--project` for project-level install
|
|
49
|
+
- `--project` for project-level install where supported; Codex profiles install globally
|
|
47
50
|
- `--global` for user-level install
|
|
48
51
|
- `--list` to inspect available source profiles without installing
|
|
49
52
|
|
|
53
|
+
Human-readable output uses subtle ANSI color. Set `NO_COLOR=1` to disable color,
|
|
54
|
+
or pass `--json` for machine-readable output. After an install, the CLI also
|
|
55
|
+
prints run commands for target harness CLIs it finds on `PATH`, such as
|
|
56
|
+
`codex --profile <profile>` or `claude --agent <profile>`.
|
|
57
|
+
|
|
50
58
|
## Harness Targets
|
|
51
59
|
|
|
52
60
|
Project installs write to:
|
|
53
61
|
|
|
54
|
-
- Codex:
|
|
62
|
+
- Codex: not supported; Codex profiles load from user config
|
|
55
63
|
- Claude Code: `.claude/agents/<profile>.md`
|
|
56
64
|
- OpenCode: `.opencode/agents/<profile>.md`
|
|
57
65
|
|
|
58
66
|
Global installs write to:
|
|
59
67
|
|
|
60
|
-
- Codex: `$CODEX_HOME
|
|
68
|
+
- Codex: `$CODEX_HOME/<profile>.config.toml`, or `~/.codex/<profile>.config.toml`
|
|
61
69
|
- Claude Code: `$CLAUDE_HOME/agents/<profile>.md`, or `~/.claude/agents/<profile>.md`
|
|
62
70
|
- OpenCode: `$OPENCODE_CONFIG_DIR/agents/<profile>.md`, or `~/.config/opencode/agents/<profile>.md`
|
|
63
71
|
|
|
@@ -66,6 +74,15 @@ installs or `~/.awesome-agents/installed.json` for global installs. `list`,
|
|
|
66
74
|
`remove`, and `update` use this registry and refuse to overwrite or delete files
|
|
67
75
|
that do not contain the generated marker unless `--force` is passed.
|
|
68
76
|
|
|
77
|
+
Run Codex profiles with:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
codex --profile <profile>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Codex expects a plain profile name. It does not accept a path passed to
|
|
84
|
+
`--profile`.
|
|
85
|
+
|
|
69
86
|
## Source Format
|
|
70
87
|
|
|
71
88
|
An agent-profile source should look like:
|
|
@@ -73,24 +90,44 @@ An agent-profile source should look like:
|
|
|
73
90
|
```text
|
|
74
91
|
agents/
|
|
75
92
|
profiles/
|
|
76
|
-
|
|
93
|
+
triage-agent.agent.yaml
|
|
94
|
+
ops-agent.agf.yaml
|
|
95
|
+
legacy-agent.md
|
|
77
96
|
adapters/
|
|
78
97
|
codex/
|
|
79
|
-
|
|
98
|
+
optional-agent.md
|
|
80
99
|
```
|
|
81
100
|
|
|
82
|
-
|
|
83
|
-
|
|
101
|
+
YAML profile files are preferred. The loader also accepts Markdown files with
|
|
102
|
+
YAML frontmatter for compatibility with tools that use `.agent.md`-style
|
|
103
|
+
profiles. Adapters are optional and can provide harness-specific metadata, but a
|
|
104
|
+
profile should stand on its own without requiring an adapter.
|
|
84
105
|
|
|
85
106
|
## Examples
|
|
86
107
|
|
|
87
108
|
```bash
|
|
88
|
-
awesome-agents add /
|
|
89
|
-
awesome-agents add /
|
|
90
|
-
awesome-agents add /
|
|
91
|
-
awesome-agents add
|
|
92
|
-
awesome-agents use
|
|
93
|
-
awesome-agents list --json
|
|
94
|
-
awesome-agents remove
|
|
95
|
-
awesome-agents update
|
|
109
|
+
npx awesome-agents add owner/repo --list
|
|
110
|
+
npx awesome-agents add owner/repo --agent triage-agent
|
|
111
|
+
npx awesome-agents add owner/repo --agent triage-agent --harness codex --global
|
|
112
|
+
npx awesome-agents add owner/repo --all --dry-run
|
|
113
|
+
npx awesome-agents use owner/repo --agent triage-agent --harness claude-code
|
|
114
|
+
npx awesome-agents list --json
|
|
115
|
+
npx awesome-agents remove triage-agent --agent codex
|
|
116
|
+
npx awesome-agents update triage-agent --agent codex --dry-run
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Release Workflow
|
|
120
|
+
|
|
121
|
+
Changes are tracked in `CHANGELOG.md` from git commit history.
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
npm run changelog
|
|
125
|
+
npm run release:dry-run -- patch
|
|
126
|
+
npm run release -- patch
|
|
127
|
+
npm run release -- minor --push
|
|
96
128
|
```
|
|
129
|
+
|
|
130
|
+
`npm run release` bumps `package.json`, `package-lock.json`, and
|
|
131
|
+
`src/constants.js`, refreshes `CHANGELOG.md`, runs lint/tests, commits
|
|
132
|
+
`Release vX.Y.Z`, and creates an annotated tag. Passing `--push` pushes the
|
|
133
|
+
branch and tag. It does not publish to npm.
|
package/docs/cli.md
CHANGED
|
@@ -12,19 +12,59 @@
|
|
|
12
12
|
|
|
13
13
|
The CLI is noninteractive for the initial scaffold. Options such as `--yes` are
|
|
14
14
|
accepted for parity, but command behavior should be fully scriptable. Installs
|
|
15
|
-
default to project scope
|
|
15
|
+
default to project scope where the selected harness supports project-local
|
|
16
|
+
profiles. Codex is the exception: Codex `--profile` loads named config layers
|
|
17
|
+
from `CODEX_HOME`, so Codex profile installs are user-level.
|
|
16
18
|
|
|
17
19
|
## Source Resolution
|
|
18
20
|
|
|
19
21
|
Supported source values:
|
|
20
22
|
|
|
21
|
-
- Local path: `/
|
|
22
|
-
- GitHub shorthand: `
|
|
23
|
-
- GitHub URL: `https://github.com/
|
|
23
|
+
- Local path: `/path/to/agent-profiles`, `~/agent-profiles`, `.`
|
|
24
|
+
- GitHub shorthand: `owner/repo`
|
|
25
|
+
- GitHub URL: `https://github.com/owner/repo`
|
|
24
26
|
|
|
25
27
|
For GitHub sources, the CLI clones a shallow temporary copy and reads
|
|
26
28
|
`agents/profiles`.
|
|
27
29
|
|
|
30
|
+
There is no default source. `add`, `install`, and `use` require the caller to
|
|
31
|
+
provide a source explicitly.
|
|
32
|
+
|
|
33
|
+
## Install Syntax
|
|
34
|
+
|
|
35
|
+
The preferred remote install form is:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx awesome-agents add owner/repo --agent <profile-slug>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
For example:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx awesome-agents add owner/repo --agent triage-agent
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
`--agent` selects the reusable agent profile. `--harness` selects where the
|
|
48
|
+
generated profile is installed:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npx awesome-agents add owner/repo --agent triage-agent --harness opencode
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
For backward compatibility, `--agent codex`, `--agent claude-code`, and
|
|
55
|
+
`--agent opencode` are still accepted as harness selectors.
|
|
56
|
+
|
|
57
|
+
The `--skill` flag is accepted only as a command-shape alias for `--profile`.
|
|
58
|
+
Installed artifacts remain operational agent profiles.
|
|
59
|
+
|
|
60
|
+
After install, human-readable output should show the CLI command to run each
|
|
61
|
+
installed profile through any matching harness CLI found on `PATH`. Examples:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
codex --profile triage-agent
|
|
65
|
+
claude --agent triage-agent
|
|
66
|
+
```
|
|
67
|
+
|
|
28
68
|
## Install Safety
|
|
29
69
|
|
|
30
70
|
Generated files contain the marker `Generated by awesome-agents`. The CLI refuses
|
package/docs/product/README.md
CHANGED
|
@@ -8,5 +8,16 @@ unless the user confirms them.
|
|
|
8
8
|
|
|
9
9
|
## Files
|
|
10
10
|
|
|
11
|
-
- `
|
|
12
|
-
|
|
11
|
+
- `product-scope.md`: What `awesome-agents` is for and how it differs from skills.
|
|
12
|
+
- `command-model.md`: Command shape, `npx skills` parity, defaults, and scriptability.
|
|
13
|
+
- `profile-source-format.md`: Source repositories, canonical profiles, adapters, and install sources.
|
|
14
|
+
- `harness-targets.md`: Codex, Claude Code, and OpenCode rendering/target behavior.
|
|
15
|
+
- `safety-and-publishing.md`: Install safety, registry behavior, verification, and npm/GitHub publish state.
|
|
16
|
+
- `open-questions.md`: Unresolved product questions.
|
|
17
|
+
|
|
18
|
+
## Note-Taking Rules
|
|
19
|
+
|
|
20
|
+
- Split notes by product area instead of appending everything to one flow file.
|
|
21
|
+
- Preserve explicit user direction and accepted implementation decisions.
|
|
22
|
+
- Keep implementation details separate from product intent when possible.
|
|
23
|
+
- Mark inferred future direction as an open question or proposal.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Command Model
|
|
2
|
+
|
|
3
|
+
These notes capture the intended command shape.
|
|
4
|
+
|
|
5
|
+
## `npx skills` Parity
|
|
6
|
+
|
|
7
|
+
The user requested "the exact same command structure as `npx skills`" for installing agent profiles.
|
|
8
|
+
|
|
9
|
+
Accepted direction:
|
|
10
|
+
|
|
11
|
+
- `add` is the primary install command because `npx skills` uses `add`.
|
|
12
|
+
- `install` is also supported because the user explicitly requested an install command.
|
|
13
|
+
- `use` renders one profile without installing it.
|
|
14
|
+
- `list` and `ls` show installed profiles.
|
|
15
|
+
- `remove` and `rm` remove installed generated profiles.
|
|
16
|
+
- `update` and `upgrade` reinstall from the recorded source.
|
|
17
|
+
- `init` creates a starter profile source layout.
|
|
18
|
+
|
|
19
|
+
## Selectors And Compatibility
|
|
20
|
+
|
|
21
|
+
The CLI supports:
|
|
22
|
+
|
|
23
|
+
- `--agent <slug>` as the preferred profile selector, matching user-facing
|
|
24
|
+
language such as `npx awesome-agents add owner/repo --agent triage-agent`.
|
|
25
|
+
- `--profile <slug>` to select profiles explicitly.
|
|
26
|
+
- `--skill <slug>` as a compatibility alias, even though the artifact is a profile.
|
|
27
|
+
- `--harness <codex|claude-code|opencode|*>` to select target harnesses.
|
|
28
|
+
- `--agent <codex|claude-code|opencode|*>` remains accepted as a legacy harness
|
|
29
|
+
selector when the value is a known harness or harness alias.
|
|
30
|
+
- `--all` to install every profile.
|
|
31
|
+
- `--list` to inspect source profiles before installing.
|
|
32
|
+
|
|
33
|
+
## Defaults
|
|
34
|
+
|
|
35
|
+
Accepted implementation decision:
|
|
36
|
+
|
|
37
|
+
- Install scope defaults to project where the target harness supports project-local profiles.
|
|
38
|
+
- Codex is an exception because `codex --profile <name>` loads
|
|
39
|
+
`$CODEX_HOME/<name>.config.toml`. Codex profile installs should use that
|
|
40
|
+
user-level config-layer target.
|
|
41
|
+
- Codex is the default harness when no `--harness` or legacy harness-valued
|
|
42
|
+
`--agent` is provided.
|
|
43
|
+
- The CLI is noninteractive in the initial scaffold.
|
|
44
|
+
- `--yes` is accepted for command-shape parity, but prompts are not currently required.
|
|
45
|
+
|
|
46
|
+
## Scriptability
|
|
47
|
+
|
|
48
|
+
The CLI should be useful from automation:
|
|
49
|
+
|
|
50
|
+
- Human-readable output should include clear target paths.
|
|
51
|
+
- Human-readable install output should show how to run the installed profile
|
|
52
|
+
through harness CLIs detected on the user's machine.
|
|
53
|
+
- `--json` should be available for scripts.
|
|
54
|
+
- `--dry-run` should preview writes without touching target files or registries.
|
|
55
|
+
|
|
56
|
+
## Profile Identity
|
|
57
|
+
|
|
58
|
+
User correction:
|
|
59
|
+
|
|
60
|
+
- Each installed profile should instruct the harness to identify itself by its
|
|
61
|
+
installed name and role. If the user asks the running agent "who are you?" or
|
|
62
|
+
asks for `triage-agent`, it should know it is the `triage-agent` profile or at
|
|
63
|
+
least that its role is Triage Agent.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Harness Targets
|
|
2
|
+
|
|
3
|
+
These notes capture how `awesome-agents` targets agent harnesses.
|
|
4
|
+
|
|
5
|
+
## Initial Harnesses
|
|
6
|
+
|
|
7
|
+
Initial harness targets:
|
|
8
|
+
|
|
9
|
+
- Codex
|
|
10
|
+
- Claude Code
|
|
11
|
+
- OpenCode
|
|
12
|
+
|
|
13
|
+
## Codex
|
|
14
|
+
|
|
15
|
+
Generated Codex profiles install to:
|
|
16
|
+
|
|
17
|
+
- Project: not supported; Codex profiles load from user config
|
|
18
|
+
- Global: `$CODEX_HOME/<profile>.config.toml`, or `~/.codex/<profile>.config.toml`
|
|
19
|
+
|
|
20
|
+
Run with:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
codex --profile <profile>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Codex profiles are not project-local in the same way Claude Code and OpenCode
|
|
27
|
+
agents are. `--profile` expects a plain name and layers the corresponding config
|
|
28
|
+
file from `CODEX_HOME`.
|
|
29
|
+
|
|
30
|
+
The generated TOML includes:
|
|
31
|
+
|
|
32
|
+
- `name`
|
|
33
|
+
- `description`
|
|
34
|
+
- optional model settings
|
|
35
|
+
- `developer_instructions`
|
|
36
|
+
|
|
37
|
+
## Claude Code
|
|
38
|
+
|
|
39
|
+
Generated Claude Code subagents install to:
|
|
40
|
+
|
|
41
|
+
- Project: `.claude/agents/<profile>.md`
|
|
42
|
+
- Global: `$CLAUDE_HOME/agents/<profile>.md`, or `~/.claude/agents/<profile>.md`
|
|
43
|
+
|
|
44
|
+
Claude Code output is Markdown with frontmatter and a generated marker.
|
|
45
|
+
|
|
46
|
+
## OpenCode
|
|
47
|
+
|
|
48
|
+
Generated OpenCode agents install to:
|
|
49
|
+
|
|
50
|
+
- Project: `.opencode/agents/<profile>.md`
|
|
51
|
+
- Global: `$OPENCODE_CONFIG_DIR/agents/<profile>.md`, or `~/.config/opencode/agents/<profile>.md`
|
|
52
|
+
|
|
53
|
+
OpenCode output is Markdown with frontmatter and a generated marker.
|
|
54
|
+
|
|
55
|
+
## Adapter Gaps
|
|
56
|
+
|
|
57
|
+
Some source repositories may provide Codex adapters first. Claude Code and
|
|
58
|
+
OpenCode use generated defaults unless a source repository adds native adapters
|
|
59
|
+
for those harnesses.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Open Questions
|
|
2
|
+
|
|
3
|
+
These are unresolved product questions for `awesome-agents`.
|
|
4
|
+
|
|
5
|
+
## Command Experience
|
|
6
|
+
|
|
7
|
+
- Should future versions include interactive prompts like `npx skills`?
|
|
8
|
+
- Should there be a `find` or search command?
|
|
9
|
+
- Should `--skill` remain permanently as a compatibility alias or eventually become a warning?
|
|
10
|
+
|
|
11
|
+
## Source And Versioning
|
|
12
|
+
|
|
13
|
+
- Should a neutral profile schema be formalized independently of Markdown frontmatter?
|
|
14
|
+
- Should remote installs record commit pins or lockfiles for reproducible updates?
|
|
15
|
+
- Should there eventually be a registry or curated index of profile sources?
|
|
16
|
+
|
|
17
|
+
## Harness Support
|
|
18
|
+
|
|
19
|
+
- Should future versions also support Codex custom-agent files in addition to
|
|
20
|
+
Codex `--profile` config layers?
|
|
21
|
+
- Should source repositories add native Claude Code and OpenCode adapters instead of relying on generated defaults?
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Product Scope
|
|
2
|
+
|
|
3
|
+
These notes capture what `awesome-agents` is and why it exists.
|
|
4
|
+
|
|
5
|
+
## Core Direction
|
|
6
|
+
|
|
7
|
+
- The package is named `awesome-agents`.
|
|
8
|
+
- It should be installable with `npx`.
|
|
9
|
+
- Its command structure should mirror `npx skills`, but for agent profiles.
|
|
10
|
+
- It should install profiles from any explicit source repository that follows
|
|
11
|
+
the `agents/profiles` source layout.
|
|
12
|
+
- Initial harness targets are Codex, Claude Code, and OpenCode.
|
|
13
|
+
- The package should be published after the scaffold works.
|
|
14
|
+
|
|
15
|
+
## Product Boundary
|
|
16
|
+
|
|
17
|
+
The user asked whether there is something like `npx skills` for agent profiles. The answer was effectively no: skills and profiles are adjacent but different layers.
|
|
18
|
+
|
|
19
|
+
Product distinction:
|
|
20
|
+
|
|
21
|
+
- `npx skills` installs reusable task workflows and instructions.
|
|
22
|
+
- `awesome-agents` installs reusable operational agent identities.
|
|
23
|
+
- A profile can define prompt, model preference, tool boundaries, notes, coordination style, and harness-specific configuration.
|
|
24
|
+
- Installed profiles should preserve explicit self-identity. A running
|
|
25
|
+
profile should know its installed slug and role.
|
|
26
|
+
|
|
27
|
+
The CLI should not pretend profiles are skills. It can mirror `npx skills` command shape where that helps user memory, but the artifact remains an agent profile.
|
|
28
|
+
|
|
29
|
+
## Source Independence
|
|
30
|
+
|
|
31
|
+
`awesome-agents` is independent of any particular profile repository. It should
|
|
32
|
+
not know about or default to one source. Users must name the local path, GitHub
|
|
33
|
+
shorthand, or Git URL they want to install from.
|
|
34
|
+
|
|
35
|
+
Product correction:
|
|
36
|
+
|
|
37
|
+
- Do not intertwine source-repository concepts into the `awesome-agents`
|
|
38
|
+
codebase.
|
|
39
|
+
- Source repositories provide profile artifacts; `awesome-agents` understands
|
|
40
|
+
the artifact shape and target harnesses.
|
|
41
|
+
- Examples and tests should use neutral source names unless they are testing
|
|
42
|
+
source resolution itself.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Profile Source Format
|
|
2
|
+
|
|
3
|
+
These notes capture how profile source repositories are organized.
|
|
4
|
+
|
|
5
|
+
## Canonical Layout
|
|
6
|
+
|
|
7
|
+
The source format is intentionally repo-neutral:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
agents/
|
|
11
|
+
profiles/
|
|
12
|
+
<profile>.agent.yaml
|
|
13
|
+
<profile>.agf.yaml
|
|
14
|
+
<profile>.md
|
|
15
|
+
adapters/
|
|
16
|
+
<harness>/
|
|
17
|
+
<profile>.md
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Canonical profiles live at:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
agents/profiles/*.{agent.yaml,agent.yml,agf.yaml,agf.yml,yaml,yml,agent.md,md}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Optional harness adapters live at:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
agents/adapters/<harness>/*
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Profile Files
|
|
33
|
+
|
|
34
|
+
YAML profile files are preferred. The loader should support a pragmatic subset
|
|
35
|
+
of emerging YAML agent-definition shapes:
|
|
36
|
+
|
|
37
|
+
- simple profile YAML with `id`, `name`, `description`, `model`, and
|
|
38
|
+
`instructions`;
|
|
39
|
+
- Agent Format-style YAML with `metadata` and `execution_policy.config`;
|
|
40
|
+
- Markdown files with YAML frontmatter for compatibility with `.agent.md`
|
|
41
|
+
ecosystems.
|
|
42
|
+
|
|
43
|
+
The CLI should preserve canonical profile content and generate harness-specific install files. A profile is reusable product content, not local machine setup.
|
|
44
|
+
|
|
45
|
+
Adapters are optional. A profile should be useful without a harness adapter; an
|
|
46
|
+
adapter is only an override for harness-specific metadata or instructions.
|
|
47
|
+
|
|
48
|
+
Profile source files are intentionally under `agents/`, not `skills/`, because
|
|
49
|
+
the source format models agent profiles separately from loadable skills.
|
|
50
|
+
|
|
51
|
+
## Source Resolution
|
|
52
|
+
|
|
53
|
+
The CLI should support:
|
|
54
|
+
|
|
55
|
+
- Local paths such as `/path/to/agent-profiles`.
|
|
56
|
+
- GitHub shorthand such as `owner/repo`.
|
|
57
|
+
- GitHub URLs.
|
|
58
|
+
|
|
59
|
+
The package must not hard-code any source repository. `add`, `install`, and
|
|
60
|
+
`use` require an explicit source from the caller.
|
|
61
|
+
|
|
62
|
+
## Registry Or Search
|
|
63
|
+
|
|
64
|
+
No registry or search command exists yet. This is an open product area, not part of the initial scaffold.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Safety And Publishing
|
|
2
|
+
|
|
3
|
+
These notes capture install safety, verification, and publish state.
|
|
4
|
+
|
|
5
|
+
## Install Safety
|
|
6
|
+
|
|
7
|
+
Default behavior should not overwrite or delete unmanaged harness files.
|
|
8
|
+
|
|
9
|
+
Accepted safety behavior:
|
|
10
|
+
|
|
11
|
+
- Generated files contain a `Generated by awesome-agents` marker.
|
|
12
|
+
- The CLI refuses to overwrite unmanaged target files unless `--force` is passed.
|
|
13
|
+
- The CLI refuses to remove unmanaged target files unless `--force` is passed.
|
|
14
|
+
- `--dry-run` should be available for install, remove, update, and init flows.
|
|
15
|
+
- Tests should use fake homes and fixture sources instead of writing to real user harness directories.
|
|
16
|
+
|
|
17
|
+
## Registry
|
|
18
|
+
|
|
19
|
+
The CLI keeps an `awesome-agents` registry so `list`, `remove`, and `update` operate only on files the CLI generated.
|
|
20
|
+
|
|
21
|
+
Registry locations:
|
|
22
|
+
|
|
23
|
+
- Project installs: `.awesome-agents/installed.json`
|
|
24
|
+
- Global installs: `~/.awesome-agents/installed.json`
|
|
25
|
+
|
|
26
|
+
The registry is not intended to discover or manage hand-written harness profiles.
|
|
27
|
+
|
|
28
|
+
## Verification
|
|
29
|
+
|
|
30
|
+
The initial scaffold was verified with:
|
|
31
|
+
|
|
32
|
+
- `npm run lint`
|
|
33
|
+
- `npm test`
|
|
34
|
+
- `npm pack --dry-run`
|
|
35
|
+
- local source install smoke tests
|
|
36
|
+
- GitHub source dry-run install smoke tests
|
|
37
|
+
|
|
38
|
+
## Release Workflow
|
|
39
|
+
|
|
40
|
+
Release metadata is local and deterministic:
|
|
41
|
+
|
|
42
|
+
- `npm run changelog` refreshes `CHANGELOG.md` from git commit history.
|
|
43
|
+
- `npm run release -- patch|minor|major|x.y.z` bumps `package.json`,
|
|
44
|
+
`package-lock.json`, and `src/constants.js`.
|
|
45
|
+
- The release script refreshes `CHANGELOG.md`, runs lint/tests, commits
|
|
46
|
+
`Release vX.Y.Z`, and creates annotated tag `vX.Y.Z`.
|
|
47
|
+
- `npm run release -- patch --push` also pushes the current branch and tag.
|
|
48
|
+
- The release script does not publish to npm.
|
|
49
|
+
|
|
50
|
+
## Publishing State
|
|
51
|
+
|
|
52
|
+
GitHub repository:
|
|
53
|
+
|
|
54
|
+
- `https://github.com/pablof7z/awesome-agents`
|
|
55
|
+
- Public
|
|
56
|
+
- `main` pushed
|
|
57
|
+
|
|
58
|
+
npm state:
|
|
59
|
+
|
|
60
|
+
- Package name `awesome-agents` was available when checked.
|
|
61
|
+
- Publish is blocked because npm is not authenticated on the machine.
|
|
62
|
+
- `npm whoami` returns `E401`.
|
|
63
|
+
- `npm publish --access public` returns npm's "not found or no permission" error.
|
|
64
|
+
- This is not an OTP blocker yet; npm auth or token setup must happen first.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awesome-agents",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Install reusable agent profiles into Codex, Claude Code, and OpenCode.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -9,12 +9,17 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"bin",
|
|
11
11
|
"src",
|
|
12
|
+
"scripts",
|
|
12
13
|
"docs",
|
|
13
14
|
"README.md",
|
|
15
|
+
"CHANGELOG.md",
|
|
14
16
|
"AGENTS.md"
|
|
15
17
|
],
|
|
16
18
|
"scripts": {
|
|
17
|
-
"
|
|
19
|
+
"changelog": "node scripts/changelog.js --write",
|
|
20
|
+
"lint": "node --check bin/awesome-agents.js && node --check src/*.js && node --check scripts/*.js && node --check test/*.test.js",
|
|
21
|
+
"release": "node scripts/release.js",
|
|
22
|
+
"release:dry-run": "node scripts/release.js --dry-run",
|
|
18
23
|
"test": "node --test"
|
|
19
24
|
},
|
|
20
25
|
"keywords": [
|