dot-agents 0.1.0 → 0.1.5
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 +191 -159
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,237 +1,269 @@
|
|
|
1
|
-
#
|
|
1
|
+
# dot-agents
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A framework for building and running agentic workflows with personas and scheduled execution.
|
|
4
4
|
|
|
5
|
-
## What is
|
|
5
|
+
## What is dot-agents?
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
dot-agents lets you define **personas** (agent configurations) and **workflows** (tasks for agents to execute), then run them on-demand or on a schedule. It's designed to work with any agent CLI (Claude Code, local LLMs, etc.).
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- **Workflows** - Multi-step orchestrations that compose skills and tools
|
|
11
|
-
- **Meta-tooling** - Tools for creating, testing, and managing agent capabilities
|
|
9
|
+
**Key features:**
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
- **Personas** with cascading inheritance - define base configurations and extend them
|
|
12
|
+
- **Workflows** with triggers - run on-demand, on cron schedules, or via webhooks
|
|
13
|
+
- **Daemon** for background execution - scheduled workflows run automatically
|
|
14
|
+
- **Agent-agnostic** - works with any CLI that accepts prompts via stdin
|
|
14
15
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
When consumed, this repository installs to your project's `.agents/` directory:
|
|
16
|
+
## Installation
|
|
18
17
|
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
├── skills/ # Focused, reusable capabilities
|
|
22
|
-
│ ├── meta/ # Tools for skill management
|
|
23
|
-
│ ├── examples/ # Example implementations
|
|
24
|
-
│ └── documents/ # Document processing
|
|
25
|
-
└── workflows/ # Multi-step orchestrations
|
|
26
|
-
└── examples/ # Example workflows
|
|
18
|
+
```bash
|
|
19
|
+
npm install -g dot-agents
|
|
27
20
|
```
|
|
28
21
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### The Agentic Way (Recommended)
|
|
22
|
+
Requires Node.js 20+.
|
|
32
23
|
|
|
33
|
-
|
|
24
|
+
## Quick Start
|
|
34
25
|
|
|
35
|
-
|
|
26
|
+
### 1. Create a `.agents` directory
|
|
36
27
|
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
"Install skills from tnez/dot-agents"
|
|
28
|
+
```bash
|
|
29
|
+
mkdir -p .agents/personas/claude .agents/workflows/hello
|
|
40
30
|
```
|
|
41
31
|
|
|
42
|
-
|
|
32
|
+
### 2. Define a persona
|
|
43
33
|
|
|
44
|
-
|
|
45
|
-
2. Detect your `.agents/` directory (or ask where to install)
|
|
46
|
-
3. Map repository structure to installation location:
|
|
47
|
-
- `skills/` → `.agents/skills/`
|
|
48
|
-
- `workflows/` → `.agents/workflows/`
|
|
49
|
-
4. Verify installation
|
|
34
|
+
Create `.agents/personas/claude/PERSONA.md`:
|
|
50
35
|
|
|
51
|
-
|
|
36
|
+
```markdown
|
|
37
|
+
---
|
|
38
|
+
name: claude
|
|
39
|
+
description: Base Claude persona
|
|
40
|
+
cmd:
|
|
41
|
+
- "claude --print"
|
|
42
|
+
- "claude -p"
|
|
43
|
+
env:
|
|
44
|
+
CLAUDE_MODEL: sonnet
|
|
45
|
+
---
|
|
52
46
|
|
|
53
|
-
|
|
47
|
+
You are a helpful assistant. Execute tasks thoroughly and report results clearly.
|
|
48
|
+
```
|
|
54
49
|
|
|
55
|
-
|
|
50
|
+
### 3. Create a workflow
|
|
56
51
|
|
|
57
|
-
|
|
58
|
-
"Browse skills in tnez/dot-agents"
|
|
59
|
-
"What workflows are available?"
|
|
60
|
-
"Show me document-related skills"
|
|
61
|
-
```
|
|
52
|
+
Create `.agents/workflows/hello/WORKFLOW.md`:
|
|
62
53
|
|
|
63
|
-
|
|
54
|
+
```markdown
|
|
55
|
+
---
|
|
56
|
+
name: hello-world
|
|
57
|
+
description: A simple hello world workflow
|
|
58
|
+
persona: claude
|
|
59
|
+
on:
|
|
60
|
+
manual: true
|
|
61
|
+
---
|
|
64
62
|
|
|
65
|
-
|
|
66
|
-
"Check for updates to my installed skills"
|
|
67
|
-
"Update skill-installer"
|
|
63
|
+
Say hello and tell me today's date.
|
|
68
64
|
```
|
|
69
65
|
|
|
70
|
-
|
|
66
|
+
### 4. Run it
|
|
71
67
|
|
|
72
|
-
|
|
68
|
+
```bash
|
|
69
|
+
dot-agents run hello-world
|
|
70
|
+
```
|
|
73
71
|
|
|
74
|
-
|
|
72
|
+
## Core Concepts
|
|
75
73
|
|
|
76
|
-
|
|
77
|
-
- **skill-browser**: Discovers available skills and workflows
|
|
74
|
+
### Personas
|
|
78
75
|
|
|
79
|
-
|
|
76
|
+
Personas define **how** an agent behaves. They specify the command to run, environment variables, available skills, and a system prompt.
|
|
80
77
|
|
|
81
|
-
|
|
78
|
+
```yaml
|
|
79
|
+
---
|
|
80
|
+
name: productivity-assistant
|
|
81
|
+
description: Focused assistant for productivity tasks
|
|
82
|
+
cmd: "claude --print"
|
|
83
|
+
env:
|
|
84
|
+
CLAUDE_MODEL: sonnet
|
|
85
|
+
skills:
|
|
86
|
+
- "productivity/**"
|
|
87
|
+
- "!productivity/experimental/*"
|
|
88
|
+
---
|
|
89
|
+
System prompt goes here in the markdown body...
|
|
90
|
+
```
|
|
82
91
|
|
|
83
|
-
|
|
92
|
+
**Persona inheritance:** Personas cascade through directories. A persona at `personas/claude/autonomous/productivity/` inherits from `personas/claude/autonomous/` which inherits from `personas/claude/`.
|
|
84
93
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
4. `~/.claude/` - Global, Claude-specific
|
|
94
|
+
- Scalar fields (name, description, cmd) - child overrides parent
|
|
95
|
+
- Objects (env) - deep merged
|
|
96
|
+
- Arrays (skills) - merged with `!` prefix for removal
|
|
89
97
|
|
|
90
|
-
|
|
98
|
+
### Workflows
|
|
91
99
|
|
|
92
|
-
|
|
100
|
+
Workflows define **what** an agent should do. They reference a persona and contain the task in the markdown body.
|
|
93
101
|
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
├── README.md
|
|
113
|
-
└── examples/
|
|
102
|
+
```yaml
|
|
103
|
+
---
|
|
104
|
+
name: daily-standup
|
|
105
|
+
description: Generate standup notes from git activity
|
|
106
|
+
persona: claude/autonomous
|
|
107
|
+
on:
|
|
108
|
+
schedule:
|
|
109
|
+
- cron: "0 9 * * 1-5"
|
|
110
|
+
manual: true
|
|
111
|
+
inputs:
|
|
112
|
+
- name: days
|
|
113
|
+
type: number
|
|
114
|
+
default: 1
|
|
115
|
+
description: Days of history to analyze
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
Analyze git commits from the last ${days} day(s) and generate standup notes.
|
|
119
|
+
Focus on: what was accomplished, what's in progress, any blockers.
|
|
114
120
|
```
|
|
115
121
|
|
|
116
|
-
|
|
122
|
+
**Triggers:**
|
|
117
123
|
|
|
118
|
-
|
|
124
|
+
- `manual: true` - Can be run on-demand
|
|
125
|
+
- `schedule` - Cron-based scheduling (requires daemon)
|
|
126
|
+
- Future: `file_change`, `webhook`, `git`
|
|
119
127
|
|
|
120
|
-
|
|
128
|
+
### Variable Expansion
|
|
121
129
|
|
|
122
|
-
|
|
123
|
-
- Templates and examples
|
|
124
|
-
- Validation and testing tools
|
|
130
|
+
Workflows support variable expansion in the task body:
|
|
125
131
|
|
|
126
|
-
|
|
132
|
+
- `${VAR}` - Environment variables and inputs
|
|
133
|
+
- `${DATE}`, `${TIME}`, `${DATETIME}` - Current date/time
|
|
134
|
+
- `${RUN_ID}` - Unique execution identifier
|
|
135
|
+
- `{{#if var}}...{{/if}}` - Conditional blocks
|
|
127
136
|
|
|
128
|
-
|
|
129
|
-
2. **Browse workflows**: Explore `workflows/` directory
|
|
130
|
-
3. **Use meta-skills**: Leverage skill-creator, skill-tester, skill-evaluator
|
|
131
|
-
4. **Create custom resources**: Follow specifications in each directory's README
|
|
132
|
-
5. **See development workflows**: Check WORKFLOWS.md for development patterns
|
|
137
|
+
## CLI Reference
|
|
133
138
|
|
|
134
|
-
|
|
139
|
+
```bash
|
|
140
|
+
dot-agents [command]
|
|
141
|
+
|
|
142
|
+
Commands:
|
|
143
|
+
run <workflow> Run a workflow
|
|
144
|
+
list [workflows|personas] List resources
|
|
145
|
+
show workflow <name> Show workflow details
|
|
146
|
+
show persona <name> Show resolved persona (with inheritance)
|
|
147
|
+
schedule list List scheduled workflows
|
|
148
|
+
daemon run Run the scheduler daemon
|
|
149
|
+
daemon status Check daemon status
|
|
150
|
+
daemon jobs List scheduled jobs
|
|
151
|
+
daemon trigger <name> Manually trigger a workflow
|
|
135
152
|
|
|
136
|
-
|
|
153
|
+
Aliases:
|
|
154
|
+
workflows List all workflows
|
|
155
|
+
personas List all personas
|
|
156
|
+
```
|
|
137
157
|
|
|
138
|
-
|
|
139
|
-
- `CONTEXT.md` - Optional user/project-specific context and customizations
|
|
140
|
-
- Optional supporting files (scripts, templates, assets, references)
|
|
158
|
+
### Running Workflows
|
|
141
159
|
|
|
142
|
-
|
|
160
|
+
```bash
|
|
161
|
+
# Run a workflow
|
|
162
|
+
dot-agents run daily-standup
|
|
143
163
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
name: skill-name
|
|
147
|
-
description: What the skill does and when to use it
|
|
148
|
-
license: MIT
|
|
149
|
-
---
|
|
164
|
+
# With input overrides
|
|
165
|
+
dot-agents run daily-standup -i days=3
|
|
150
166
|
|
|
151
|
-
#
|
|
167
|
+
# Dry run (show prompt without executing)
|
|
168
|
+
dot-agents run daily-standup --dry-run
|
|
152
169
|
|
|
153
|
-
|
|
170
|
+
# Override persona
|
|
171
|
+
dot-agents run daily-standup -p claude/autonomous
|
|
154
172
|
```
|
|
155
173
|
|
|
156
|
-
|
|
174
|
+
### Viewing Details
|
|
157
175
|
|
|
158
|
-
|
|
176
|
+
```bash
|
|
177
|
+
# Show resolved persona with full inheritance chain
|
|
178
|
+
dot-agents show persona claude/autonomous/productivity
|
|
159
179
|
|
|
160
|
-
|
|
180
|
+
# Show workflow with resolved prompt
|
|
181
|
+
dot-agents show workflow daily-standup --prompt
|
|
182
|
+
```
|
|
161
183
|
|
|
162
|
-
|
|
184
|
+
## Daemon
|
|
163
185
|
|
|
164
|
-
|
|
165
|
-
- Decision making and conditionals
|
|
166
|
-
- Coordination of multiple skills
|
|
167
|
-
- Standardized procedures
|
|
186
|
+
The daemon runs scheduled workflows in the background.
|
|
168
187
|
|
|
169
|
-
|
|
188
|
+
```bash
|
|
189
|
+
# Start the daemon
|
|
190
|
+
dot-agents daemon run
|
|
170
191
|
|
|
171
|
-
|
|
192
|
+
# Check status
|
|
193
|
+
dot-agents daemon status
|
|
172
194
|
|
|
173
|
-
|
|
195
|
+
# View scheduled jobs
|
|
196
|
+
dot-agents daemon jobs
|
|
174
197
|
|
|
175
|
-
|
|
198
|
+
# Manually trigger a workflow
|
|
199
|
+
dot-agents daemon trigger daily-standup
|
|
176
200
|
|
|
177
|
-
|
|
178
|
-
-
|
|
179
|
-
|
|
180
|
-
- Auto-detects installation location
|
|
201
|
+
# Reload workflows after changes
|
|
202
|
+
dot-agents daemon reload
|
|
203
|
+
```
|
|
181
204
|
|
|
182
|
-
|
|
205
|
+
The daemon provides an HTTP API on port 3141 (configurable with `-p`):
|
|
183
206
|
|
|
184
|
-
|
|
207
|
+
- `GET /health` - Health check
|
|
208
|
+
- `GET /status` - Daemon status and uptime
|
|
209
|
+
- `GET /jobs` - List scheduled jobs
|
|
210
|
+
- `POST /trigger/:workflow` - Trigger a workflow
|
|
211
|
+
- `POST /reload` - Reload workflows from disk
|
|
185
212
|
|
|
186
|
-
|
|
213
|
+
## Directory Structure
|
|
187
214
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
215
|
+
```text
|
|
216
|
+
.agents/
|
|
217
|
+
├── personas/ # Agent configurations
|
|
218
|
+
│ └── claude/
|
|
219
|
+
│ ├── PERSONA.md # Base Claude persona
|
|
220
|
+
│ └── autonomous/
|
|
221
|
+
│ ├── PERSONA.md # Inherits from claude
|
|
222
|
+
│ └── productivity/
|
|
223
|
+
│ └── PERSONA.md # Inherits from autonomous
|
|
224
|
+
├── workflows/ # Task definitions
|
|
225
|
+
│ └── daily-standup/
|
|
226
|
+
│ └── WORKFLOW.md
|
|
227
|
+
├── skills/ # Reusable capabilities (optional)
|
|
228
|
+
└── sessions/ # Execution logs
|
|
229
|
+
```
|
|
192
230
|
|
|
193
|
-
|
|
231
|
+
## Skills
|
|
194
232
|
|
|
195
|
-
|
|
233
|
+
dot-agents also supports skills - focused, reusable capabilities that agents can load. Skills follow the [Anthropic Skills Specification](https://github.com/anthropics/skills/blob/main/agent_skills_spec.md).
|
|
196
234
|
|
|
197
|
-
|
|
235
|
+
Skills are referenced in personas via glob patterns:
|
|
198
236
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
-
|
|
237
|
+
```yaml
|
|
238
|
+
skills:
|
|
239
|
+
- "documents/**"
|
|
240
|
+
- "productivity/*"
|
|
241
|
+
- "!experimental/**"
|
|
242
|
+
```
|
|
202
243
|
|
|
203
|
-
|
|
244
|
+
See the `skills/` directory for examples.
|
|
204
245
|
|
|
205
|
-
|
|
246
|
+
## Development
|
|
206
247
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
248
|
+
```bash
|
|
249
|
+
# Clone and install
|
|
250
|
+
git clone https://github.com/tnez/dot-agents.git
|
|
251
|
+
cd dot-agents
|
|
252
|
+
npm install
|
|
210
253
|
|
|
211
|
-
|
|
254
|
+
# Build
|
|
255
|
+
npm run build
|
|
212
256
|
|
|
213
|
-
|
|
257
|
+
# Run CLI locally
|
|
258
|
+
just cli list workflows
|
|
214
259
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
260
|
+
# Run linters
|
|
261
|
+
just lint
|
|
262
|
+
```
|
|
218
263
|
|
|
219
264
|
## Contributing
|
|
220
265
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
1. Use `skill-creator` for skills or follow `workflows/README.md` for workflows
|
|
224
|
-
2. Test with `skill-tester` to ensure spec compliance
|
|
225
|
-
3. Evaluate with `skill-evaluator` for quality assurance
|
|
226
|
-
4. Follow the test → evaluate → refine cycle
|
|
227
|
-
|
|
228
|
-
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
|
|
229
|
-
|
|
230
|
-
## Resources
|
|
231
|
-
|
|
232
|
-
- [Agent Skills Specification](https://github.com/anthropics/skills/blob/main/agent_skills_spec.md)
|
|
233
|
-
- [Anthropics Skills Repository](https://github.com/anthropics/skills)
|
|
234
|
-
- [Development Workflows](DEVELOPMENT.md)
|
|
266
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
235
267
|
|
|
236
268
|
## License
|
|
237
269
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dot-agents",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "A framework for building agentic workflows with personas and scheduled execution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/lib/index.js",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"dev": "tsc --watch",
|
|
24
24
|
"typecheck": "tsc --noEmit",
|
|
25
25
|
"clean": "rm -rf dist *.tsbuildinfo",
|
|
26
|
+
"prepare": "git config core.hooksPath .githooks || true",
|
|
26
27
|
"prepublishOnly": "npm run clean && npm run build"
|
|
27
28
|
},
|
|
28
29
|
"files": [
|