-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcollar.html
More file actions
132 lines (116 loc) · 5.97 KB
/
Copy pathcollar.html
File metadata and controls
132 lines (116 loc) · 5.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>collar — DAG-first agent harness | specdog</title>
<meta name="description" content="DAG-first AI agent harness. Entity→Target:verb(card). Reads .dag files. Rust router at 3ms.">
<link rel="icon" type="image/svg+xml" href="/dotdog/assets/dog.svg">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #fff; color: #1a1a2e; max-width: 720px; margin: 0 auto; padding: 40px 24px; line-height: 1.75; }
nav { display: flex; justify-content: center; gap: 18px; padding: 0 0 32px; flex-wrap: wrap; }
nav a { color: #6b7280; text-decoration: none; font-size: .9em; font-weight: 500; }
nav a:hover, nav a.active { color: #d97706; }
h1 { font-size: 2.2em; margin-bottom: 8px; }
.hero-art { display: block; width: 100px; height: 100px; margin: 0 auto 20px; }
h2 { font-size: 1.35em; margin: 36px 0 12px; border-bottom: 1px solid #e5e7eb; padding-bottom: 6px; }
pre { background: #f1f5f9; border: 1px solid #cbd5e1; border-radius: 6px; padding: 14px 18px; font-size: .85em; overflow-x: auto; margin: 8px 0; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { text-align: left; padding: 8px 12px; border-bottom: 1px solid #e5e7eb; }
th { font-size: .85em; color: #6b7280; font-weight: 600; }
td { font-size: .9em; }
.badge-row { display: flex; gap: 12px; align-items: center; margin: 16px 0; flex-wrap: wrap; }
.tagline { font-size: 1.1em; color: #4b5563; margin-bottom: 16px; }
.explain { background: #fef3c7; border-left: 3px solid #f59e0b; padding: 12px 16px; border-radius: 4px; margin: 16px 0; font-size: .92em; }
.explain strong { color: #92400e; }
footer { margin-top: 48px; padding-top: 24px; border-top: 1px solid #e5e7eb; text-align: center; font-size: .85em; color: #9ca3af; }
a { color: #d97706; }
/* shared navigation */
body { padding-top: 24px; margin-top: 0; }
nav {
display: flex;
justify-content: center;
align-items: center;
gap: 18px;
flex-wrap: wrap;
width: min(calc(100vw - 48px), 960px);
margin: 0 auto 32px;
padding: 8px 0 0;
position: relative;
left: 50%;
transform: translateX(-50%);
}
nav a { color: #6b7280; text-decoration: none; font-size: .9em; font-weight: 500; line-height: 1.4; }
nav a:hover, nav a.active { color: #d97706; }
/* end shared navigation */
</style>
<link rel="canonical" href="https://specdog.github.io/collar">
</head>
<body>
<nav>
<a href="/">specdog</a>
<a href="/dotdog">dotdog</a>
<a href="/about">about</a>
<a href="/handbook">guide</a>
<a href="/agents">for agents</a>
<a href="/dogfood">dogfood</a>
<a href="/blog">blog</a>
<a href="/leash">leash</a>
<a href="/collar" class="active">collar</a>
</nav>
<img class="hero-art" src="/assets/collar-robot.svg" alt="Friendly robot wearing a specdog collar">
<h1>collar</h1>
<p class="tagline">DAG-first AI agent harness — <code>Entity→Target:verb(card)</code>. Reads <code>.dag</code> files. Rust router at 3ms.</p>
<div class="badge-row">
<img src="https://img.shields.io/badge/version-1.4.0-blue" alt="v1.4.0">
<img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT">
<img src="https://img.shields.io/badge/python-3.11%2B-blue" alt="Python 3.11+">
<img src="https://img.shields.io/badge/semver-2.0.0-green" alt="Semver 2.0.0">
<img src="https://github.com/specdog/collar/actions/workflows/dotdog-validate.yml/badge.svg" alt="dotdog validate">
<img src="https://github.com/specdog/collar/actions/workflows/semver-guard.yml/badge.svg" alt="semver guard">
</div>
<div class="explain">
<strong>.dog</strong> = human spec format · <strong>.dag</strong> = agent runtime format · <strong>.md</strong> = last resort
</div>
<p>Collar is forked from NousResearch/hermes-agent, rebuilt as a DAG-first harness. It reads <code>.dag</code> files as its behavioral ground truth. Skills auto-compile from <code>.dog</code> specs into <code>.dag</code> edges. No prose config, no baked-in prompts — just DAG paths.</p>
<p>Created by <strong>Justin DiClemente</strong> (<a href="https://github.com/logohere">@logohere</a>).</p>
<h2>Install</h2>
<pre>git clone https://github.com/specdog/collar.git
cd collar
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
npm install -g dotdog</pre>
<p>Requires Python >= 3.11.</p>
<h2>Quick Start</h2>
<pre>collar # interactive chat
collar chat -q "..." # single query
collar setup # first-time setup wizard</pre>
<h2>No API key? Use OAuth</h2>
<pre>collar auth add openai-codex # ChatGPT Plus/Pro
collar auth add xai-oauth # xAI SuperGrok
collar auth add qwen-oauth # Qwen Plus/Pro
collar auth add nous # Nous Portal</pre>
<p>Then <code>collar model</code> to pick your provider. Or set <code>OPENROUTER_API_KEY</code> in <code>~/.dag/.env</code> for pay-per-token access to 200+ models.</p>
<h2>Architecture</h2>
<table>
<tr><th>Layer</th><th>Source</th><th>Format</th><th>Loader</th></tr>
<tr><td>System prompt</td><td><code>dags/*.dag</code></td><td>DAG-path plain text</td><td><code>_load_dag_text()</code></td></tr>
<tr><td>Skills</td><td><code>skills/*/SKILL.dag</code></td><td>DAG-path plain text</td><td><code>skill_view()</code></td></tr>
<tr><td>Projects</td><td><code>*.dag</code></td><td>JSON v2/v3</td><td>MCP dotdog</td></tr>
</table>
<h2>Key Numbers</h2>
<table>
<tr><td>95% compression</td><td>383k → 17k (skills)</td></tr>
<tr><td>74% compression</td><td>15k → 4k (system prompt)</td></tr>
<tr><td>0 legacy refs</td><td>6974+ renamed</td></tr>
</table>
<h2>Links</h2>
<p>
<a href="https://github.com/specdog/collar">GitHub</a> ·
<a href="https://github.com/specdog/dotdog">dotdog</a> ·
<a href="https://github.com/specdog">specdog org</a>
</p>
<footer>specdog · MIT license · dogfoods its own .dag files</footer>
</body>
</html>