@bastani/atomic 0.9.19-alpha.5 → 0.9.19-alpha.7
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/CHANGELOG.md +32 -0
- package/README.md +2 -2
- package/dist/builtin/intercom/CHANGELOG.md +6 -0
- package/dist/builtin/intercom/broker/client.ts +19 -1
- package/dist/builtin/intercom/index.bundle.mjs +8 -1
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +6 -0
- package/dist/builtin/subagents/README.md +3 -1
- package/dist/builtin/subagents/agents/codebase-online-researcher.md +7 -7
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/skills/subagent/SKILL.md +3 -1
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +2 -1
- package/dist/builtin/web-access/CHANGELOG.md +13 -0
- package/dist/builtin/web-access/README.md +31 -24
- package/dist/builtin/web-access/index.bundle.mjs +16121 -80
- package/dist/builtin/web-access/package.json +2 -1
- package/dist/builtin/workflows/CHANGELOG.md +15 -0
- package/dist/builtin/workflows/README.md +1 -1
- package/dist/builtin/workflows/builtin/adversarial-verification.js +2 -2
- package/dist/builtin/workflows/builtin/{chunk-vhmnzdj9.js → chunk-1jth021m.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-p8jjwfg6.js → chunk-2377r57g.js} +4 -2
- package/dist/builtin/workflows/builtin/{chunk-hbnwv56f.js → chunk-31j2gs7h.js} +2 -2
- package/dist/builtin/workflows/builtin/{chunk-n8zysf1t.js → chunk-ngkqkzej.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-1nbq96fh.js → chunk-nkrafh9s.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-1kx4aggw.js → chunk-wf741bv3.js} +2 -2
- package/dist/builtin/workflows/builtin/{chunk-t6x2d78s.js → chunk-z29qbehr.js} +1 -1
- package/dist/builtin/workflows/builtin/generate-and-filter.js +2 -2
- package/dist/builtin/workflows/builtin/goal.js +3 -3
- package/dist/builtin/workflows/builtin/index.js +7 -7
- package/dist/builtin/workflows/builtin/ralph.js +3 -3
- package/dist/builtin/workflows/builtin/tournament.js +2 -2
- package/dist/builtin/workflows/package.json +1 -1
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +339 -31
- package/dist/builtin/workflows/src/index.js +67 -19
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +2 -0
- package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
- package/dist/core/agent-session-tool-registry.js +10 -0
- package/dist/core/agent-session-tool-registry.js.map +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/tools/bash.d.ts +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +3 -2
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +3 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +91 -12
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/file-mutation-coordinator.d.ts +255 -0
- package/dist/core/tools/file-mutation-coordinator.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-coordinator.js +300 -0
- package/dist/core/tools/file-mutation-coordinator.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +14 -1
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/core/tools/file-mutation-queue.js +15 -3
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/hashline.d.ts +9 -0
- package/dist/core/tools/hashline.d.ts.map +1 -1
- package/dist/core/tools/hashline.js +12 -1
- package/dist/core/tools/hashline.js.map +1 -1
- package/dist/core/tools/index.d.ts +9 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +67 -12
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/non-minting-snapshot-store.d.ts +49 -0
- package/dist/core/tools/non-minting-snapshot-store.d.ts.map +1 -0
- package/dist/core/tools/non-minting-snapshot-store.js +64 -0
- package/dist/core/tools/non-minting-snapshot-store.js.map +1 -0
- package/dist/core/tools/powershell.d.ts +2 -2
- package/dist/core/tools/powershell.d.ts.map +1 -1
- package/dist/core/tools/powershell.js +2 -5
- package/dist/core/tools/powershell.js.map +1 -1
- package/dist/core/tools/read-document-extract.js.map +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/write.d.ts +30 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +97 -8
- package/dist/core/tools/write.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/task-live-transcript.d.ts +1 -1
- package/dist/modes/interactive/components/task-live-transcript.d.ts.map +1 -1
- package/dist/modes/interactive/components/task-live-transcript.js +19 -11
- package/dist/modes/interactive/components/task-live-transcript.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +3 -1
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +28 -4
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +3 -0
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive-engine/activity-watchdog.d.ts +2 -2
- package/dist/modes/interactive-engine/activity-watchdog.d.ts.map +1 -1
- package/dist/modes/interactive-engine/activity-watchdog.js.map +1 -1
- package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts +3 -1
- package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-diagnostic-view.js +11 -0
- package/dist/modes/interactive-engine/engine-diagnostic-view.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js +2 -1
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/rpc/rpc-client-process.d.ts +2 -0
- package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-process.js +23 -1
- package/dist/modes/rpc/rpc-client-process.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +20 -3
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/utils/markit.d.ts +2 -0
- package/dist/utils/markit.d.ts.map +1 -1
- package/dist/utils/markit.js +65 -5
- package/dist/utils/markit.js.map +1 -1
- package/docs/background-tasks.md +15 -11
- package/docs/build.md +51 -0
- package/docs/changelog.mdx +8 -8
- package/docs/compaction/reference.md +267 -0
- package/docs/compaction.md +36 -219
- package/docs/computer-use.md +35 -0
- package/docs/containerization.md +9 -5
- package/docs/custom-provider/api-reference.md +145 -0
- package/docs/custom-provider/oauth.md +131 -0
- package/docs/custom-provider/override.md +34 -0
- package/docs/custom-provider/registration.md +163 -0
- package/docs/custom-provider/streaming.md +214 -0
- package/docs/custom-provider.md +43 -607
- package/docs/development.md +87 -0
- package/docs/docs.json +199 -76
- package/docs/environment-variables.md +1 -1
- package/docs/extensions/api-reference.md +1001 -0
- package/docs/extensions/authoring.md +676 -0
- package/docs/extensions/events.md +793 -0
- package/docs/extensions/examples.md +94 -0
- package/docs/extensions/ui.md +470 -0
- package/docs/extensions.md +270 -2768
- package/docs/getting-started/authentication.md +55 -0
- package/docs/getting-started/first-session.md +172 -0
- package/docs/getting-started/installation.md +154 -0
- package/docs/getting-started/project-instructions.md +43 -0
- package/docs/guides/configuration.md +65 -0
- package/docs/guides/intercom.md +24 -0
- package/docs/guides/non-interactive.md +33 -0
- package/docs/guides/subagents.md +24 -0
- package/docs/guides/workflows.md +27 -0
- package/docs/guides.md +41 -0
- package/docs/index.md +13 -45
- package/docs/intercom/operations.md +178 -0
- package/docs/intercom/reference.md +146 -0
- package/docs/intercom.md +54 -259
- package/docs/json.md +17 -0
- package/docs/llama-cpp.md +5 -0
- package/docs/models/artificial-analysis-index.md +89 -0
- package/docs/models/evals.md +2 -2
- package/docs/models/model-selection.md +3 -3
- package/docs/models/pareto-efficiency.md +2 -2
- package/docs/models/reference.md +601 -0
- package/docs/models.md +45 -550
- package/docs/packages/authoring.md +88 -0
- package/docs/packages/reference.md +43 -0
- package/docs/packages.md +28 -107
- package/docs/programmatic.md +29 -0
- package/docs/prompt-templates.md +11 -0
- package/docs/providers/reference.md +23 -0
- package/docs/providers.md +10 -15
- package/docs/quickstart.md +44 -238
- package/docs/reference/cli.md +252 -0
- package/docs/reference.md +52 -0
- package/docs/rpc/examples.md +64 -0
- package/docs/rpc/extension-ui.md +198 -0
- package/docs/rpc/protocol.md +1341 -0
- package/docs/rpc.md +109 -1346
- package/docs/sdk/reference.md +1090 -0
- package/docs/sdk.md +56 -1002
- package/docs/session-format.md +2 -0
- package/docs/sessions.md +6 -10
- package/docs/settings.md +6 -45
- package/docs/skills/authoring.md +95 -0
- package/docs/skills/reference.md +60 -0
- package/docs/skills.md +20 -122
- package/docs/subagents/authoring.md +37 -0
- package/docs/subagents/reference.md +60 -0
- package/docs/subagents.md +42 -96
- package/docs/terminal-setup.md +1 -1
- package/docs/themes/reference.md +176 -0
- package/docs/themes.md +21 -135
- package/docs/tmux.md +5 -0
- package/docs/tools/edit.md +5 -0
- package/docs/tools.md +31 -0
- package/docs/tui/reference.md +343 -0
- package/docs/tui.md +23 -286
- package/docs/usage.md +26 -209
- package/docs/web-access.md +40 -0
- package/docs/windows.md +2 -1
- package/docs/workflows/api-reference.md +11 -4
- package/docs/workflows/authoring.md +4 -2
- package/docs/workflows/builtins.md +2 -2
- package/docs/workflows/operations.md +11 -7
- package/docs/workflows/reliable-design.md +21 -3
- package/docs/workflows/verification.md +8 -0
- package/examples/extensions/gondolin/index.ts +116 -148
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/ssh.ts +56 -34
- package/npm-shrinkwrap.json +33 -33
- package/package.json +4 -4
package/docs/session-format.md
CHANGED
package/docs/sessions.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Atomic saves conversations as sessions so you can continue work, branch from earlier turns, and revisit previous paths.
|
|
4
4
|
|
|
5
|
+
## On this page
|
|
6
|
+
|
|
7
|
+
This page covers working with sessions: storage, commands, resuming, naming, and branching. Branch summarization behavior is documented with the rest of context management in [Compaction](/compaction#branch-summarization).
|
|
8
|
+
|
|
5
9
|
## Session Storage
|
|
6
10
|
|
|
7
11
|
Sessions auto-save to `~/.atomic/agent/sessions/`, organized by working directory. Each session is a JSONL file with a tree structure.
|
|
@@ -152,17 +156,9 @@ Use `/tree` when you want to keep alternatives together. Use `/fork` or `/clone`
|
|
|
152
156
|
|
|
153
157
|
## Branch Summaries
|
|
154
158
|
|
|
155
|
-
When `/tree` switches away from one branch to another, Atomic can summarize the abandoned branch
|
|
156
|
-
|
|
157
|
-
When prompted, choose one of:
|
|
158
|
-
|
|
159
|
-
1. no summary
|
|
160
|
-
2. summarize with the default prompt
|
|
161
|
-
3. summarize with custom focus instructions
|
|
162
|
-
|
|
163
|
-
Branch summaries are separate from `/compact`: branch navigation can generate summary prose (optionally with focus instructions), while Verbatim Compaction lets a model select numbered line ranges and reconstructs retained text mechanically.
|
|
159
|
+
Branch summaries are compact records of what happened on a session branch. When `/tree` switches away from one branch to another, Atomic can optionally summarize the abandoned branch. The prompt lets you choose no summary, the default summary prompt, or custom focus instructions; when `branchSummary.skipPrompt` is enabled, Atomic skips the prompt and defaults to no summary.
|
|
164
160
|
|
|
165
|
-
|
|
161
|
+
Moved to [Compaction & Branch Summarization](/compaction#branch-summaries).
|
|
166
162
|
|
|
167
163
|
## Session Format
|
|
168
164
|
|
package/docs/settings.md
CHANGED
|
@@ -11,6 +11,10 @@ Edit directly or use `/settings` for common options. Choosing a model or thinkin
|
|
|
11
11
|
|
|
12
12
|
Saving an Atomic setting applies only the changed fields to the corresponding `.atomic` file; it does not copy untouched fallback fields out of `.pi`. To intentionally override an inherited array such as `packages`, set it in `.atomic`, including an explicit empty array (`"packages": []`) when the inherited list should be disabled.
|
|
13
13
|
|
|
14
|
+
## On this page and its guide
|
|
15
|
+
|
|
16
|
+
This page is the exhaustive settings reference: every field, its default, and its constraints. If you are writing your first settings file or setting up a project-scoped override, start with the [Configure Atomic](/guides/configuration) guide.
|
|
17
|
+
|
|
14
18
|
## Project Trust
|
|
15
19
|
|
|
16
20
|
On interactive startup, Atomic asks before trusting a project folder that contains trust-gated project inputs and has no saved decision for the folder or a parent folder in `~/.atomic/agent/trust.json`. Trusting a project allows Atomic to load project-local `.atomic/settings.json` and `.atomic` resources, legacy `.pi/settings.json` and `.pi` resources, project-local context files, install missing project packages, and execute project extensions.
|
|
@@ -475,51 +479,8 @@ See [Atomic packages](/packages) for package management details.
|
|
|
475
479
|
|
|
476
480
|
## Example
|
|
477
481
|
|
|
478
|
-
|
|
479
|
-
{
|
|
480
|
-
"defaultProvider": "anthropic",
|
|
481
|
-
"defaultModel": "claude-sonnet-4-20250514",
|
|
482
|
-
"defaultThinkingLevel": "medium",
|
|
483
|
-
"theme": "dark",
|
|
484
|
-
"compaction": {
|
|
485
|
-
"enabled": true,
|
|
486
|
-
"reserveTokens": 16384,
|
|
487
|
-
"compression_ratio": 0.5,
|
|
488
|
-
"preserve_recent": 2
|
|
489
|
-
},
|
|
490
|
-
"retry": {
|
|
491
|
-
"enabled": true,
|
|
492
|
-
"maxRetries": 3
|
|
493
|
-
},
|
|
494
|
-
"httpIdleTimeoutMs": 300000,
|
|
495
|
-
"enabledModels": ["claude-*", "gpt-4o"],
|
|
496
|
-
"warnings": {
|
|
497
|
-
"anthropicExtraUsage": true
|
|
498
|
-
},
|
|
499
|
-
"packages": ["pi-skills"],
|
|
500
|
-
"workflows": ["./workflows/*.ts"]
|
|
501
|
-
}
|
|
502
|
-
```
|
|
482
|
+
Moved to [Configure Atomic](/guides/configuration#example).
|
|
503
483
|
|
|
504
484
|
## Project Overrides
|
|
505
485
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
```json
|
|
509
|
-
// ~/.atomic/agent/settings.json (global)
|
|
510
|
-
{
|
|
511
|
-
"theme": "dark",
|
|
512
|
-
"compaction": { "enabled": true, "reserveTokens": 16384 }
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
// .atomic/settings.json (project)
|
|
516
|
-
{
|
|
517
|
-
"compaction": { "reserveTokens": 8192 }
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
// Result
|
|
521
|
-
{
|
|
522
|
-
"theme": "dark",
|
|
523
|
-
"compaction": { "enabled": true, "reserveTokens": 8192 }
|
|
524
|
-
}
|
|
525
|
-
```
|
|
486
|
+
Moved to [Configure Atomic](/guides/configuration#project-overrides).
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Writing skills
|
|
3
|
+
description: Skill directory structure and a complete worked example.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Writing skills
|
|
7
|
+
|
|
8
|
+
## Skill Structure
|
|
9
|
+
|
|
10
|
+
A skill is a directory with a `SKILL.md` file. Everything else is freeform.
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
my-skill/
|
|
14
|
+
├── SKILL.md # Required: frontmatter + instructions
|
|
15
|
+
├── scripts/ # Helper scripts
|
|
16
|
+
│ └── process.sh
|
|
17
|
+
├── references/ # Detailed docs loaded on-demand
|
|
18
|
+
│ └── api-reference.md
|
|
19
|
+
└── assets/
|
|
20
|
+
└── template.json
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### SKILL.md Format
|
|
24
|
+
|
|
25
|
+
````markdown
|
|
26
|
+
---
|
|
27
|
+
name: my-skill
|
|
28
|
+
description: What this skill does and when to use it. Be specific.
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# My Skill
|
|
32
|
+
|
|
33
|
+
## Setup
|
|
34
|
+
|
|
35
|
+
Run once before first use:
|
|
36
|
+
```bash
|
|
37
|
+
cd /path/to/skill && bun install
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
./scripts/process.sh <input>
|
|
44
|
+
```
|
|
45
|
+
````
|
|
46
|
+
|
|
47
|
+
Use relative file paths from the skill directory (these are bundled skill files, not docs routes):
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
See the API reference at `references/api-reference.md` for details.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Keep authored instructions outcome-first and concise. State observable completion and stop conditions, give a short reason for material constraints, and use decision rules for judgment calls instead of `ALWAYS`/`NEVER` language. Put detailed or model-specific material in `references/` so it loads only when needed. Do not ask models to reproduce private reasoning or repeatedly verify their own work; require evidence or validation results where correctness matters.
|
|
54
|
+
|
|
55
|
+
## Example
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
brave-search/
|
|
59
|
+
├── SKILL.md
|
|
60
|
+
├── search.js
|
|
61
|
+
└── content.js
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**SKILL.md:**
|
|
65
|
+
````markdown
|
|
66
|
+
---
|
|
67
|
+
name: brave-search
|
|
68
|
+
description: Web search and content extraction via Brave Search API. Use for searching documentation, facts, or any web content.
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
# Brave Search
|
|
72
|
+
|
|
73
|
+
## Setup
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
cd /path/to/brave-search && bun install
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Search
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
./search.js "query" # Basic search
|
|
83
|
+
./search.js "query" --content # Include page content
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Extract Page Content
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
./content.js https://example.com
|
|
90
|
+
```
|
|
91
|
+
````
|
|
92
|
+
|
|
93
|
+
## Next steps
|
|
94
|
+
|
|
95
|
+
Check the skill reference for [frontmatter fields](/skills/reference#frontmatter) and [validation rules](/skills/reference#validation) before sharing your skill.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Skill reference
|
|
3
|
+
description: SKILL.md frontmatter fields and validation rules.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill reference
|
|
7
|
+
|
|
8
|
+
## Frontmatter
|
|
9
|
+
|
|
10
|
+
Per the [Agent Skills specification](https://agentskills.io/specification#frontmatter-required):
|
|
11
|
+
|
|
12
|
+
| Field | Required | Description |
|
|
13
|
+
|-------|----------|-------------|
|
|
14
|
+
| `name` | Yes | Max 64 chars. Lowercase a-z, 0-9, hyphens. Must match parent directory. |
|
|
15
|
+
| `description` | Yes | Max 1024 chars. What the skill does and when to use it. |
|
|
16
|
+
| `license` | No | License name or reference to bundled file. |
|
|
17
|
+
| `compatibility` | No | Max 500 chars. Environment requirements. |
|
|
18
|
+
| `metadata` | No | Arbitrary key-value mapping. |
|
|
19
|
+
| `allowed-tools` | No | Space-delimited list of pre-approved tools (experimental). |
|
|
20
|
+
| `disable-model-invocation` | No | When `true`, skill is hidden from system prompt. Users must use `/skill:name`. |
|
|
21
|
+
|
|
22
|
+
### Name Rules
|
|
23
|
+
|
|
24
|
+
- 1-64 characters
|
|
25
|
+
- Lowercase letters, numbers, hyphens only
|
|
26
|
+
- No leading/trailing hyphens
|
|
27
|
+
- No consecutive hyphens
|
|
28
|
+
- Must match parent directory name
|
|
29
|
+
|
|
30
|
+
Valid: `pdf-processing`, `data-analysis`, `code-review`
|
|
31
|
+
Invalid: `PDF-Processing`, `-pdf`, `pdf--processing`
|
|
32
|
+
|
|
33
|
+
### Description Best Practices
|
|
34
|
+
|
|
35
|
+
The description determines when the agent loads the skill. Be specific.
|
|
36
|
+
|
|
37
|
+
Good:
|
|
38
|
+
```yaml
|
|
39
|
+
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Poor:
|
|
43
|
+
```yaml
|
|
44
|
+
description: Helps with PDFs.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Validation
|
|
48
|
+
|
|
49
|
+
Atomic validates skills against the Agent Skills standard. Most issues produce warnings but still load the skill:
|
|
50
|
+
|
|
51
|
+
- Name doesn't match parent directory
|
|
52
|
+
- Name exceeds 64 characters or contains invalid characters
|
|
53
|
+
- Name starts/ends with hyphen or has consecutive hyphens
|
|
54
|
+
- Description exceeds 1024 characters
|
|
55
|
+
|
|
56
|
+
Unknown frontmatter fields are ignored.
|
|
57
|
+
|
|
58
|
+
Declared skills with missing descriptions are not loaded. Malformed `SKILL.md` files and `SKILL.md` files without a description produce warnings and are not loaded. Other Markdown files without valid skill frontmatter are ignored.
|
|
59
|
+
|
|
60
|
+
Name collisions (the same name from different real files) produce diagnostics and keep the existing first-winner precedence for `/skill:name`. Atomic also retains the other files as source-qualified candidates as described in [Skill Commands](/skills#skill-commands).
|
package/docs/skills.md
CHANGED
|
@@ -6,20 +6,29 @@ Skills are self-contained capability packages that the agent loads on-demand. A
|
|
|
6
6
|
|
|
7
7
|
Atomic implements the [Agent Skills standard](https://agentskills.io/specification), warning about violations but remaining lenient.
|
|
8
8
|
|
|
9
|
+
## Where to go next
|
|
10
|
+
|
|
11
|
+
Skills are on-demand instructions the agent loads when a task matches. Read this page to install and use them, then continue:
|
|
12
|
+
|
|
13
|
+
- [Writing skills](/skills/authoring) — directory structure and a complete worked example.
|
|
14
|
+
- [Skill reference](/skills/reference) — `SKILL.md` frontmatter fields and validation rules.
|
|
15
|
+
|
|
9
16
|
## Table of Contents
|
|
10
17
|
|
|
11
18
|
- [Locations](#locations)
|
|
12
19
|
- [How Skills Work](#how-skills-work)
|
|
13
20
|
- [Skill Commands](#skill-commands)
|
|
14
|
-
- [Skill Structure](#skill-structure)
|
|
15
|
-
- [Frontmatter](#frontmatter)
|
|
16
|
-
- [Validation](#validation)
|
|
17
|
-
- [Example](#example)
|
|
21
|
+
- [Skill Structure](/skills/authoring#skill-structure)
|
|
22
|
+
- [Frontmatter](/skills/reference#frontmatter)
|
|
23
|
+
- [Validation](/skills/reference#validation)
|
|
24
|
+
- [Example](/skills/authoring#example)
|
|
18
25
|
- [Skill Repositories](#skill-repositories)
|
|
19
26
|
|
|
20
27
|
## Locations
|
|
21
28
|
|
|
22
29
|
> **Security:** Skills can instruct the model to perform any action and may include executable code the model invokes. Review skill content before use.
|
|
30
|
+
>
|
|
31
|
+
> Read [Security](/security) for the project-trust boundary that governs which skills load at all.
|
|
23
32
|
|
|
24
33
|
Atomic loads skills from:
|
|
25
34
|
|
|
@@ -145,142 +154,31 @@ See [workflow stage chat controls](/workflows/operations#skills-in-attached-stag
|
|
|
145
154
|
|
|
146
155
|
## Skill Structure
|
|
147
156
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
my-skill/
|
|
152
|
-
├── SKILL.md # Required: frontmatter + instructions
|
|
153
|
-
├── scripts/ # Helper scripts
|
|
154
|
-
│ └── process.sh
|
|
155
|
-
├── references/ # Detailed docs loaded on-demand
|
|
156
|
-
│ └── api-reference.md
|
|
157
|
-
└── assets/
|
|
158
|
-
└── template.json
|
|
159
|
-
```
|
|
157
|
+
Moved to [Writing skills](/skills/authoring#skill-structure).
|
|
160
158
|
|
|
161
159
|
### SKILL.md Format
|
|
162
160
|
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
name: my-skill
|
|
166
|
-
description: What this skill does and when to use it. Be specific.
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
# My Skill
|
|
170
|
-
|
|
171
|
-
## Setup
|
|
172
|
-
|
|
173
|
-
Run once before first use:
|
|
174
|
-
```bash
|
|
175
|
-
cd /path/to/skill && bun install
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Usage
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
./scripts/process.sh <input>
|
|
182
|
-
```
|
|
183
|
-
````
|
|
184
|
-
|
|
185
|
-
Use relative file paths from the skill directory (these are bundled skill files, not docs routes):
|
|
186
|
-
|
|
187
|
-
```markdown
|
|
188
|
-
See the API reference at `references/api-reference.md` for details.
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
Keep authored instructions outcome-first and concise. State observable completion and stop conditions, give a short reason for material constraints, and use decision rules for judgment calls instead of `ALWAYS`/`NEVER` language. Put detailed or model-specific material in `references/` so it loads only when needed. Do not ask models to reproduce private reasoning or repeatedly verify their own work; require evidence or validation results where correctness matters.
|
|
161
|
+
Moved to [Writing skills](/skills/authoring#skill-md-format).
|
|
192
162
|
|
|
193
163
|
## Frontmatter
|
|
194
164
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
| Field | Required | Description |
|
|
198
|
-
|-------|----------|-------------|
|
|
199
|
-
| `name` | Yes | Max 64 chars. Lowercase a-z, 0-9, hyphens. Must match parent directory. |
|
|
200
|
-
| `description` | Yes | Max 1024 chars. What the skill does and when to use it. |
|
|
201
|
-
| `license` | No | License name or reference to bundled file. |
|
|
202
|
-
| `compatibility` | No | Max 500 chars. Environment requirements. |
|
|
203
|
-
| `metadata` | No | Arbitrary key-value mapping. |
|
|
204
|
-
| `allowed-tools` | No | Space-delimited list of pre-approved tools (experimental). |
|
|
205
|
-
| `disable-model-invocation` | No | When `true`, skill is hidden from system prompt. Users must use `/skill:name`. |
|
|
165
|
+
Moved to [Skill reference](/skills/reference#frontmatter).
|
|
206
166
|
|
|
207
167
|
### Name Rules
|
|
208
168
|
|
|
209
|
-
|
|
210
|
-
- Lowercase letters, numbers, hyphens only
|
|
211
|
-
- No leading/trailing hyphens
|
|
212
|
-
- No consecutive hyphens
|
|
213
|
-
- Must match parent directory name
|
|
214
|
-
|
|
215
|
-
Valid: `pdf-processing`, `data-analysis`, `code-review`
|
|
216
|
-
Invalid: `PDF-Processing`, `-pdf`, `pdf--processing`
|
|
169
|
+
Moved to [Skill reference](/skills/reference#name-rules).
|
|
217
170
|
|
|
218
171
|
### Description Best Practices
|
|
219
172
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
Good:
|
|
223
|
-
```yaml
|
|
224
|
-
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents.
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
Poor:
|
|
228
|
-
```yaml
|
|
229
|
-
description: Helps with PDFs.
|
|
230
|
-
```
|
|
173
|
+
Moved to [Skill reference](/skills/reference#description-best-practices).
|
|
231
174
|
|
|
232
175
|
## Validation
|
|
233
176
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
- Name doesn't match parent directory
|
|
237
|
-
- Name exceeds 64 characters or contains invalid characters
|
|
238
|
-
- Name starts/ends with hyphen or has consecutive hyphens
|
|
239
|
-
- Description exceeds 1024 characters
|
|
240
|
-
|
|
241
|
-
Unknown frontmatter fields are ignored.
|
|
242
|
-
|
|
243
|
-
Declared skills with missing descriptions are not loaded. Malformed `SKILL.md` files and `SKILL.md` files without a description produce warnings and are not loaded. Other Markdown files without valid skill frontmatter are ignored.
|
|
244
|
-
|
|
245
|
-
Name collisions (the same name from different real files) produce diagnostics and keep the existing first-winner precedence for `/skill:name`. Atomic also retains the other files as source-qualified candidates as described in [Skill Commands](#skill-commands).
|
|
177
|
+
Moved to [Skill reference](/skills/reference#validation).
|
|
246
178
|
|
|
247
179
|
## Example
|
|
248
180
|
|
|
249
|
-
|
|
250
|
-
brave-search/
|
|
251
|
-
├── SKILL.md
|
|
252
|
-
├── search.js
|
|
253
|
-
└── content.js
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
**SKILL.md:**
|
|
257
|
-
````markdown
|
|
258
|
-
---
|
|
259
|
-
name: brave-search
|
|
260
|
-
description: Web search and content extraction via Brave Search API. Use for searching documentation, facts, or any web content.
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
# Brave Search
|
|
264
|
-
|
|
265
|
-
## Setup
|
|
266
|
-
|
|
267
|
-
```bash
|
|
268
|
-
cd /path/to/brave-search && bun install
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
## Search
|
|
272
|
-
|
|
273
|
-
```bash
|
|
274
|
-
./search.js "query" # Basic search
|
|
275
|
-
./search.js "query" --content # Include page content
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
## Extract Page Content
|
|
279
|
-
|
|
280
|
-
```bash
|
|
281
|
-
./content.js https://example.com
|
|
282
|
-
```
|
|
283
|
-
````
|
|
181
|
+
Moved to [Writing skills](/skills/authoring#example).
|
|
284
182
|
|
|
285
183
|
## Skill Repositories
|
|
286
184
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Custom subagents
|
|
3
|
+
description: Define, scope, and configure your own subagents.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Custom subagents
|
|
7
|
+
|
|
8
|
+
## Custom agents
|
|
9
|
+
|
|
10
|
+
Custom agents are Markdown files with YAML frontmatter and a system prompt body. Keep the body outcome-first and locally complete: state the role or goal, observable success criteria, constraints and context-dependent tool routes, required output shape, and stop conditions. Reserve absolute wording for true invariants, request evidence and conclusions rather than private reasoning, and avoid repeated self-check instructions. Common locations are:
|
|
11
|
+
|
|
12
|
+
| Scope | Path |
|
|
13
|
+
|---|---|
|
|
14
|
+
| User | `~/.atomic/agent/agents/**/*.md` |
|
|
15
|
+
| Project | `.atomic/agents/**/*.md` |
|
|
16
|
+
|
|
17
|
+
A small custom read-only inspection agent:
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
---
|
|
21
|
+
name: strict-inspector
|
|
22
|
+
description: Inspect code for correctness and regressions
|
|
23
|
+
tools: read, search, bash
|
|
24
|
+
model: anthropic/claude-sonnet-4
|
|
25
|
+
fallbackModels: openai/gpt-5-mini
|
|
26
|
+
inheritProjectContext: true
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Role and goal
|
|
30
|
+
Inspect the current diff for correctness and regressions without editing files.
|
|
31
|
+
|
|
32
|
+
## Success criteria
|
|
33
|
+
Cite each actionable issue with file:line evidence and the observed failure or risk.
|
|
34
|
+
|
|
35
|
+
## Output and stop rule
|
|
36
|
+
Return only issues worth fixing now. Stop when the relevant diff and affected call paths have been inspected, or name the evidence you could not access.
|
|
37
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Subagent reference
|
|
3
|
+
description: Fallback model resolution and reasoning-level contracts.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Subagent reference
|
|
7
|
+
|
|
8
|
+
## Fallback models
|
|
9
|
+
|
|
10
|
+
Agents can define ordered `fallbackModels` for retryable provider or model failures such as rate limits, quota/usage-limit exhaustion (for example a provider reporting `The usage limit has been reached`, or `usage_limit_reached`/`insufficient_quota` codes), auth problems, unavailable models, network timeouts, or 5xx errors. Atomic tries the requested primary model first, then configured fallbacks, and finally appends the current user-selected model as the last fallback candidate when available. The main chat and workflow stages share one failure classifier, so auth, model-availability, request-incompatibility, and transport signals are handled consistently. Cancellations, safety refusals, and task/tool failures are never retried on another model.
|
|
11
|
+
|
|
12
|
+
A candidate that cannot serve the current request — for example an HTTP 400/413/422 bad/unprocessable/payload-too-large request, an unsupported tool or parameter, a context-length/context-window overflow, or a `too large` / `invalid_request` error — is treated as request/context incompatible and the fallback sequence advances to the next candidate rather than stopping. This means that if none of the configured candidates are applicable to the request, Atomic falls back to the currently selected user model instead of failing outright.
|
|
13
|
+
|
|
14
|
+
Model fallback decisions use structured provider and attempt causes. There is no per-attempt idle watchdog, no child wall-clock kill cap, and no timeout-regex classification: a quiet provider response is allowed to finish, and only an explicit termination or provider failure supplies a retryable cause. Numeric process exit codes are not used as an outcome discriminator.
|
|
15
|
+
|
|
16
|
+
When registry availability shows that a known candidate provider has no configured auth, Atomic records a skipped model attempt before starting the in-process turn. Unknown/custom providers are still attempted, and the current user-selected model appended as the final fallback is never filtered out by this pre-admission check.
|
|
17
|
+
|
|
18
|
+
Fallbacks do not retry ordinary task failures, validation failures, tool failures, cancellations, or workflow-code errors. Because a fallback may send the same prompt and context to a different provider, choose models that match your cost, privacy, and data-handling requirements.
|
|
19
|
+
|
|
20
|
+
Each candidate can also carry its own reasoning effort — see [Reasoning levels](#reasoning-levels).
|
|
21
|
+
|
|
22
|
+
## Reasoning levels
|
|
23
|
+
|
|
24
|
+
Set the reasoning (thinking) effort for each model candidate with a `model_name:thinking_effort` suffix on `model` and on every `fallbackModels` entry. Valid efforts are `off`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max` — the same shorthand used by `atomic --model sonnet:high`. `xhigh` and `max` are used only when the selected model's capability map supports them.
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
---
|
|
28
|
+
name: deep-reviewer
|
|
29
|
+
description: Adversarial reviewer for risky diffs
|
|
30
|
+
tools: read, search, bash
|
|
31
|
+
model: anthropic/claude-sonnet-4:high
|
|
32
|
+
fallbackModels: openai/gpt-5:medium, anthropic/claude-haiku-4-5:off
|
|
33
|
+
---
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Because the effort travels with each model string, every primary and fallback candidate is self-contained: a fallback can run at a different effort than the primary, so a high-effort primary degrades gracefully to a cheaper, lower-effort fallback.
|
|
37
|
+
|
|
38
|
+
**Migrate off the legacy `thinking` field.** The separate `thinking:` frontmatter field is deprecated. It still works as a default for any candidate that has no suffix, and a suffix always wins, but new agents should encode the effort directly on `model` and `fallbackModels`:
|
|
39
|
+
|
|
40
|
+
```diff
|
|
41
|
+
-model: openai/gpt-5.5
|
|
42
|
+
-fallbackModels: anthropic/claude-opus-4-8
|
|
43
|
+
-thinking: xhigh
|
|
44
|
+
+model: openai/gpt-5.5:xhigh
|
|
45
|
+
+fallbackModels: anthropic/claude-opus-4-8:xhigh
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`fallbackThinkingLevels` exists only as an optional compatibility helper: it is aligned by index to `fallbackModels` and supplies a fallback candidate's effort only when that fallback entry has no suffix. Prefer suffixed model strings instead. Attempt metadata reports the resolved model and the effective reasoning effort used for each attempt.
|
|
49
|
+
|
|
50
|
+
## Owner-bound task projection
|
|
51
|
+
|
|
52
|
+
Host adapters can construct an `OwnerTaskStore` from their existing supervisor and owner lease, check the `store.connect()` result, then call `bindOwnerTaskStore(session, store)` for that exact live session. Binding does not create or connect an owner. The store observes snapshot/cursor reconciliation and notifies already-mounted chats even when the producer binds lazily. Disposing the view does not cancel the owner. Reattachment uses existing identities rather than replaying launch tools.
|
|
53
|
+
|
|
54
|
+
Native task snapshots retain `wasBackground` once a designated observation yields, so a fresh projection can distinguish completed background work from foreground-only commands. Trusted hosts recover authentic command settlement receipts independently of the bounded event journal. Neither recovery path registers a new wait or restarts execution.
|
|
55
|
+
|
|
56
|
+
Main and workflow-stage chats use below-prompt background counts instead of persistent task rows in the transcript. Session replacement clears the previous owner's status before a replacement store binds. A workflow question retains the background count below its input area. Completion notifications use the same shared renderer in both chats.
|
|
57
|
+
|
|
58
|
+
Custom `ChatSessionHost` adapters can still use live task rows; set `taskRowsInChat: false` for footer-only status. Those rows show agent labels, state, duration, and bounded activity previews. Display-colliding labels get a stable short suffix derived from the task ID. Retention is at most 64 reports and 8 KiB of encoded preview records per task; omitted previews are labelled rather than presented as a complete transcript.
|
|
59
|
+
|
|
60
|
+
This is a host integration API above the SDK task foundation. Existing subagent and command producers are not automatically migrated by binding a projection. Full task transcript retrieval and `/tasks` navigation are separate integrations; unavailable transcript content is not inferred from activity reports.
|