@martinffx/atelier 2.0.0 → 3.0.0
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 +14 -0
- package/README.md +94 -253
- package/package.json +1 -1
- package/skills/{spec-orchestrator → atelier-orchestrator}/SKILL.md +3 -3
- package/skills/atelier-setup/SKILL.md +80 -0
- package/skills/code-review/references/reviewers.md +3 -3
- package/skills/code-review/references/rq.md +6 -6
- package/skills/spec-brainstorm/SKILL.md +5 -5
- package/skills/spec-implement/SKILL.md +2 -3
- package/skills/spec-plan/SKILL.md +21 -29
- package/skills/spec-plan/references/plan_template.md +77 -0
- package/skills/python-architecture/SKILL.md +0 -148
- package/skills/python-architecture/references/data-modeling.md +0 -558
- package/skills/python-architecture/references/ddd.md +0 -569
- package/skills/python-architecture/references/functional-core.md +0 -337
- package/skills/python-build-tools/SKILL.md +0 -153
- package/skills/python-build-tools/references/basedpyright.md +0 -321
- package/skills/python-build-tools/references/ruff.md +0 -225
- package/skills/python-build-tools/references/uv.md +0 -257
- package/skills/python-fastapi/SKILL.md +0 -184
- package/skills/python-fastapi/references/api-design.md +0 -563
- package/skills/python-fastapi/references/dependencies.md +0 -479
- package/skills/python-fastapi/references/middleware.md +0 -475
- package/skills/python-fastapi/references/validation.md +0 -497
- package/skills/python-modern-python/SKILL.md +0 -201
- package/skills/python-modern-python/references/async.md +0 -76
- package/skills/python-modern-python/references/pattern-matching.md +0 -89
- package/skills/python-modern-python/references/typing.md +0 -96
- package/skills/python-monorepo/SKILL.md +0 -146
- package/skills/python-monorepo/references/docker.md +0 -515
- package/skills/python-monorepo/references/namespace-packages.md +0 -426
- package/skills/python-monorepo/references/workspace-config.md +0 -341
- package/skills/python-sqlalchemy/SKILL.md +0 -119
- package/skills/python-sqlalchemy/references/async.md +0 -51
- package/skills/python-sqlalchemy/references/models.md +0 -67
- package/skills/python-sqlalchemy/references/queries.md +0 -57
- package/skills/python-temporal/SKILL.md +0 -128
- package/skills/python-temporal/references/patterns.md +0 -87
- package/skills/python-temporal/references/testing.md +0 -54
- package/skills/python-testing/SKILL.md +0 -161
- package/skills/python-testing/references/boundaries.md +0 -449
- package/skills/python-testing/references/mocking.md +0 -449
- package/skills/python-testing/references/pytest.md +0 -524
- package/skills/typescript-api-design/SKILL.md +0 -396
- package/skills/typescript-api-design/references/error-responses.md +0 -469
- package/skills/typescript-build-tools/SKILL.md +0 -447
- package/skills/typescript-build-tools/references/biome.md +0 -436
- package/skills/typescript-build-tools/references/bun.md +0 -432
- package/skills/typescript-build-tools/references/turborepo.md +0 -426
- package/skills/typescript-build-tools/references/vitest.md +0 -518
- package/skills/typescript-drizzle-orm/SKILL.md +0 -398
- package/skills/typescript-drizzle-orm/references/cloudflare.md +0 -392
- package/skills/typescript-drizzle-orm/references/entity-pattern.md +0 -412
- package/skills/typescript-drizzle-orm/references/postgresql.md +0 -191
- package/skills/typescript-drizzle-orm/references/repository-pattern.md +0 -479
- package/skills/typescript-drizzle-orm/references/sqlite.md +0 -291
- package/skills/typescript-dynamodb-toolbox/SKILL.md +0 -370
- package/skills/typescript-dynamodb-toolbox/references/entity-layer.md +0 -574
- package/skills/typescript-dynamodb-toolbox/references/error-handling.md +0 -495
- package/skills/typescript-dynamodb-toolbox/references/modeling.md +0 -332
- package/skills/typescript-dynamodb-toolbox/references/repository-layer.md +0 -631
- package/skills/typescript-dynamodb-toolbox/references/testing.md +0 -718
- package/skills/typescript-dynamodb-toolbox/references/transactions.md +0 -423
- package/skills/typescript-effect-ts/SKILL.md +0 -341
- package/skills/typescript-effect-ts/references/core.md +0 -412
- package/skills/typescript-effect-ts/references/error-handling.md +0 -468
- package/skills/typescript-effect-ts/references/resources.md +0 -476
- package/skills/typescript-effect-ts/references/schema.md +0 -536
- package/skills/typescript-effect-ts/references/services.md +0 -461
- package/skills/typescript-fastify/SKILL.md +0 -405
- package/skills/typescript-fastify/references/plugins.md +0 -329
- package/skills/typescript-fastify/references/typeid.md +0 -315
- package/skills/typescript-functional-patterns/SKILL.md +0 -402
- package/skills/typescript-functional-patterns/references/adts.md +0 -497
- package/skills/typescript-functional-patterns/references/branded-types.md +0 -542
- package/skills/typescript-functional-patterns/references/migration-guide.md +0 -695
- package/skills/typescript-functional-patterns/references/option-result.md +0 -585
- package/skills/typescript-testing/SKILL.md +0 -353
- package/skills/typescript-testing/references/mocking.md +0 -675
- package/skills/typescript-testing/references/msw.md +0 -852
- package/skills/typescript-testing/references/snapshot-testing.md +0 -774
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
- **breaking:** rename the `recon` agent to `sentinel`. Existing Atelier configuration is migrated automatically and legacy generated files are removed during the next command.
|
|
6
6
|
|
|
7
|
+
## [3.0.0](https://github.com/martinffx/atelier/compare/v2.0.0...v3.0.0) (2026-07-31)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### ⚠ BREAKING CHANGES
|
|
11
|
+
|
|
12
|
+
* **claude:** consolidate plugins under atelier
|
|
13
|
+
* **skills:** split language skills into companion repositories
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **claude:** consolidate plugins under atelier ([745f872](https://github.com/martinffx/atelier/commit/745f872193ac841074ddc16f788ded5c92cf9744))
|
|
18
|
+
* **skills:** add atelier setup workflow ([69a7a93](https://github.com/martinffx/atelier/commit/69a7a9350c2f8e7d8a6001143cb4f4233f462117))
|
|
19
|
+
* **skills:** split language skills into companion repositories ([b1fb1f7](https://github.com/martinffx/atelier/commit/b1fb1f7db942283bca5f067848c55e0dcc6c228f))
|
|
20
|
+
|
|
7
21
|
## [2.0.0](https://github.com/martinffx/atelier/compare/v1.4.0...v2.0.0) (2026-07-27)
|
|
8
22
|
|
|
9
23
|
|
package/README.md
CHANGED
|
@@ -2,27 +2,100 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
>
|
|
6
|
-
>
|
|
7
|
-
> [Wikipedia](https://en.wikipedia.org/wiki/Atelier)
|
|
5
|
+
> A personal development toolkit for AI agents. It covers spec-driven development, code quality, and deep thinking.
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
Atelier gives coding agents a disciplined way to move from an idea to reviewed, verified code without taking control away from the developer.
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
```bash
|
|
10
|
+
npx skills add martinffx/atelier
|
|
11
|
+
npx @martinffx/atelier@latest init --harness <claude|opencode|codex|cursor>
|
|
12
|
+
```
|
|
12
13
|
|
|
13
|
-
##
|
|
14
|
+
## How Atelier works
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
Atelier uses as much process as each request needs. Bounded work gets a concise plan in the conversation. Substantial work gets a durable spec, an implementation plan, and tracked execution. The developer approves the plan before implementation begins.
|
|
16
17
|
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
```mermaid
|
|
19
|
+
flowchart TD
|
|
20
|
+
R[Request] --> O[atelier-orchestrator]
|
|
21
|
+
|
|
22
|
+
O -->|Bounded work| IP[spec-plan: Inline Plan]
|
|
23
|
+
IP --> IA{Developer approval}
|
|
24
|
+
IA -->|Approved| I[Implement directly]
|
|
25
|
+
IA -.->|Revise| IP
|
|
26
|
+
I --> V[Validate]
|
|
27
|
+
V -.->|Issues found| I
|
|
28
|
+
IP -.->|Needs brainstorming| B
|
|
29
|
+
I -.->|Needs brainstorming| B
|
|
30
|
+
|
|
31
|
+
O -->|Substantial work| B[spec-brainstorm]
|
|
32
|
+
B --> D[design.md]
|
|
33
|
+
D --> G[oracle-grill-me]
|
|
34
|
+
G --> P[spec-plan]
|
|
35
|
+
G -.->|Refine design| D
|
|
36
|
+
P --> SA{Developer approval}
|
|
37
|
+
SA -->|Approved| J[plan.json]
|
|
38
|
+
SA -.->|Revise plan| P
|
|
39
|
+
SA -.->|Revisit design| B
|
|
40
|
+
J --> SI[spec-implement]
|
|
41
|
+
SI --> CR[code-review]
|
|
42
|
+
CR --> F[spec-finish]
|
|
43
|
+
F --> PR[code-pull-request]
|
|
44
|
+
SI -.->|Revise plan| P
|
|
45
|
+
SI -.->|Revisit design| B
|
|
46
|
+
F -.->|Issues found| SI
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The workflow is deliberately harder to rush than an unstructured agent session. It records decisions when they need to survive the conversation, keeps implementation tied to an approved plan, and requires evidence before calling the work complete.
|
|
50
|
+
|
|
51
|
+
## Grill the idea
|
|
52
|
+
|
|
53
|
+
[`oracle-grill-me`](skills/oracle-grill-me/SKILL.md) interviews you one question at a time until the important decisions are explicit. It researches facts from the codebase instead of asking you to supply them, gives a recommended answer for each decision, and leaves the final choice with you.
|
|
54
|
+
|
|
55
|
+
As the discussion resolves, it maintains the project's domain language and architectural decisions. Use it on a proposal, plan, migration, or design that feels settled a little too quickly.
|
|
20
56
|
|
|
21
|
-
|
|
22
|
-
|
|
57
|
+
```text
|
|
58
|
+
Grill me on this migration plan
|
|
23
59
|
```
|
|
24
60
|
|
|
25
|
-
|
|
61
|
+
## Review the code
|
|
62
|
+
|
|
63
|
+
[`code-review`](skills/code-review/SKILL.md) runs a multi-agent review rather than asking one agent for a general opinion. Sentinel triages the diff, specialist reviewers examine likely failure modes in parallel, Architect checks design boundaries, and a final challenge pass removes weak or unsupported findings.
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
rq # Review the diff to main
|
|
67
|
+
rq develop # Review against another branch
|
|
68
|
+
rs # Work through the findings
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
It reports findings before changing code. You decide which fixes to apply.
|
|
72
|
+
|
|
73
|
+
## What you get
|
|
74
|
+
|
|
75
|
+
Atelier installs a focused set of skills for the full development loop:
|
|
76
|
+
|
|
77
|
+
| Area | Capabilities |
|
|
78
|
+
|------|--------------|
|
|
79
|
+
| Spec workflow | Discovery, research, planning, implementation, validation, and finishing |
|
|
80
|
+
| Thinking | Root-cause debugging, decision grilling, and domain modelling |
|
|
81
|
+
| Delivery | Multi-agent review, subagent coordination, commits, handoffs, and pull requests |
|
|
82
|
+
|
|
83
|
+
The CLI also configures three specialist agents for Claude Code, OpenCode, Codex, or Cursor:
|
|
84
|
+
|
|
85
|
+
| Agent | Role |
|
|
86
|
+
|-------|------|
|
|
87
|
+
| **Sentinel** | Fast codebase reconnaissance and review triage |
|
|
88
|
+
| **Oracle** | Requirements, trade-offs, and adversarial analysis |
|
|
89
|
+
| **Architect** | Domain modelling, system design, and architecture review |
|
|
90
|
+
|
|
91
|
+
Run `npx @martinffx/atelier@latest --help` for CLI commands and options. Each skill contains its own operating instructions and loads when its context applies.
|
|
92
|
+
|
|
93
|
+
## Ecosystem
|
|
94
|
+
|
|
95
|
+
Language-specific guidance lives in companion repositories:
|
|
96
|
+
|
|
97
|
+
- [Python skills](https://github.com/martinffx/python-skills)
|
|
98
|
+
- [TypeScript skills](https://github.com/martinffx/typescript-skills)
|
|
26
99
|
|
|
27
100
|
## Rationale and inspiration
|
|
28
101
|
|
|
@@ -42,7 +115,7 @@ Some Atelier skills have more direct lineage:
|
|
|
42
115
|
|
|
43
116
|
| Atelier skill | Source skill | Relationship |
|
|
44
117
|
|---------------|--------------|--------------|
|
|
45
|
-
| [`
|
|
118
|
+
| [`atelier-orchestrator`](skills/atelier-orchestrator/SKILL.md) | Superpowers [`using-superpowers`](https://github.com/obra/superpowers/tree/main/skills/using-superpowers) | Adapted from its mandatory skill-routing discipline. |
|
|
46
119
|
| [`spec-brainstorm`](skills/spec-brainstorm/SKILL.md) | Superpowers [`brainstorming`](https://github.com/obra/superpowers/tree/main/skills/brainstorming) | Adapted from its conversational discovery and section-by-section design approval. |
|
|
47
120
|
| [`spec-plan`](skills/spec-plan/SKILL.md) | Superpowers [`writing-plans`](https://github.com/obra/superpowers/tree/main/skills/writing-plans) | Inspired by its explicit, verifiable implementation plans. |
|
|
48
121
|
| [`spec-implement`](skills/spec-implement/SKILL.md) | Superpowers [`executing-plans`](https://github.com/obra/superpowers/tree/main/skills/executing-plans) and [`test-driven-development`](https://github.com/obra/superpowers/tree/main/skills/test-driven-development) | Inspired by plan-driven execution and test-first feedback loops. |
|
|
@@ -53,260 +126,28 @@ Some Atelier skills have more direct lineage:
|
|
|
53
126
|
| [`oracle-domain-modelling`](skills/oracle-domain-modelling/SKILL.md) | Matt Pocock's [`domain-modeling`](https://github.com/mattpocock/skills/tree/main/skills/engineering/domain-modeling) | Adapted from its active domain-modelling discipline, `CONTEXT.md`, and lightweight ADRs. |
|
|
54
127
|
| [`oracle-debug`](skills/oracle-debug/SKILL.md) | Superpowers [`systematic-debugging`](https://github.com/obra/superpowers/tree/main/skills/systematic-debugging) and Matt Pocock's [`diagnosing-bugs`](https://github.com/mattpocock/skills/tree/main/skills/engineering/diagnosing-bugs) | Adapted from their root-cause-first debugging workflows. |
|
|
55
128
|
|
|
56
|
-
|
|
129
|
+
[`code-commit`](skills/code-commit/SKILL.md) follows the [Conventional Commits](https://www.conventionalcommits.org/) specification.
|
|
57
130
|
|
|
58
131
|
Atelier adapts these ideas into an opinionated toolkit that works across harnesses. It does not claim to have invented the practices it uses.
|
|
59
132
|
|
|
60
|
-
## What gets installed
|
|
61
|
-
|
|
62
|
-
Atelier sets up the following:
|
|
63
|
-
|
|
64
|
-
### 1. Skills (29 available)
|
|
65
|
-
|
|
66
|
-
Skills are specialized knowledge modules that load when their context applies. Install them separately:
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
npx skills add martinffx/atelier
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### 2. Agent personas (3 subagents)
|
|
73
|
-
|
|
74
|
-
Agent definitions are generated for each supported harness with appropriate models:
|
|
75
|
-
|
|
76
|
-
| Agent | Role | Claude | OpenCode | Codex | Cursor |
|
|
77
|
-
|-------|------|--------|----------|-------|--------|
|
|
78
|
-
| **Sentinel** | Fast codebase reconnaissance | haiku | deepseek-v4-flash | gpt-5.6-luna | composer-2.5 |
|
|
79
|
-
| **Oracle** | Strategic thinking, requirements, analysis | opus | kimi-k2.6 | gpt-5.6-sol | claude-opus-4-8-high |
|
|
80
|
-
| **Architect** | DDD, system design, architecture | opus | deepseek-v4-pro | gpt-5.6-sol | gpt-5.6-sol-medium |
|
|
81
|
-
|
|
82
|
-
The CLI writes agents to harness-specific locations: `.claude/agents/`, `.opencode/agent/`, `.codex/agents/`, or `~/.cursor/agents/`. It uses each harness's model identifiers. Cursor's primary model and `~/.cursor/cli-config.json` remain user-managed. Atelier only creates its three global subagents.
|
|
83
|
-
|
|
84
|
-
The agent personas carry a light *Matrix* theme. Sentinel takes after the Sentinels: it moves quickly through the codebase, locating what matters and reporting back. Oracle clarifies human needs and choices under uncertainty. Architect turns those requirements into structured technical designs.
|
|
85
|
-
|
|
86
|
-
### 3. Task tracking (optional)
|
|
87
|
-
|
|
88
|
-
The spec workflow can use **beads** for dependency-aware task tracking:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
# Install beads (optional but recommended)
|
|
92
|
-
npm install -g beads
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
Beads provides `bd ready` to find unblocked tasks, `bd dep add` to manage dependencies, and `bd list` to show progress. Harness-native todo systems do not provide the same dependency support.
|
|
96
|
-
|
|
97
|
-
If beads is unavailable, skills use the harness's native todo system: TodoWrite for Claude Code or built-in todos for OpenCode.
|
|
98
|
-
|
|
99
|
-
### 4. Configuration
|
|
100
|
-
|
|
101
|
-
Single source of truth in `.atelier/config.json`:
|
|
102
|
-
|
|
103
|
-
```json
|
|
104
|
-
{
|
|
105
|
-
"version": "1.0.0",
|
|
106
|
-
"skills_source": "martinffx/atelier",
|
|
107
|
-
"skills_path": "~/.agents/skills",
|
|
108
|
-
"claude": {
|
|
109
|
-
"provider": "anthropic",
|
|
110
|
-
"default_model": "opusplan",
|
|
111
|
-
"agents": [
|
|
112
|
-
{ "template": "sentinel", "name": "sentinel", "model": "haiku" },
|
|
113
|
-
{ "template": "oracle", "name": "oracle", "model": "opus" },
|
|
114
|
-
{ "template": "architect", "name": "architect", "model": "opus" }
|
|
115
|
-
]
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## CLI commands
|
|
121
|
-
|
|
122
|
-
### `init` (default)
|
|
123
|
-
|
|
124
|
-
Initialize Atelier for one harness. Run the command again for each additional harness.
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
npx @martinffx/atelier@latest init --harness <claude|opencode|codex|cursor> [options]
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Options:
|
|
131
|
-
- `--harness <type>` - Harness type (`claude`, `opencode`, `codex`, or `cursor`)
|
|
132
|
-
- `--yes` - Non-interactive mode with default models
|
|
133
|
-
|
|
134
|
-
You can safely re-run `init` for the same harness. It regenerates its files and does not delete existing files unless you switch harnesses.
|
|
135
|
-
|
|
136
|
-
### `update`
|
|
137
|
-
|
|
138
|
-
Refresh agents and harness-native config for one harness without touching skills:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
npx @martinffx/atelier@latest update --harness <claude|opencode|codex|cursor>
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### `remove`
|
|
145
|
-
|
|
146
|
-
Remove all atelier-generated files for one harness:
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
npx @martinffx/atelier@latest remove --harness <claude|opencode|codex|cursor>
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
Skills remain installed. Run `npx skills remove martinffx/atelier` to remove them separately.
|
|
153
|
-
|
|
154
|
-
## Skills
|
|
155
|
-
|
|
156
|
-
This repository includes 29 skills for agent workflows and stack-specific guidance.
|
|
157
|
-
|
|
158
|
-
### Installing skills
|
|
159
|
-
|
|
160
|
-
Install skills manually:
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
# Install all skills
|
|
164
|
-
npx skills add martinffx/atelier
|
|
165
|
-
|
|
166
|
-
# Install specific skills
|
|
167
|
-
npx skills add martinffx/atelier --skill typescript-drizzle-orm
|
|
168
|
-
npx skills add martinffx/atelier --skill python-fastapi
|
|
169
|
-
npx skills add martinffx/atelier --skill spec-brainstorm
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Skill organization
|
|
173
|
-
|
|
174
|
-
Atelier has three core skill namespaces:
|
|
175
|
-
|
|
176
|
-
| Namespace | Type | Invocation | Output | Flexibility |
|
|
177
|
-
|-----------|------|------------|--------|-------------|
|
|
178
|
-
| `spec:` | Process | User or previous skill | Plan or artifact | Follow exactly |
|
|
179
|
-
| `oracle:` | Analytical | Context-driven | Guidance | Adapt to context |
|
|
180
|
-
| `code:` | Utility | User | Result | Use as needed |
|
|
181
|
-
|
|
182
|
-
#### Workflow (`spec:*`)
|
|
183
|
-
|
|
184
|
-
These skills guide plan-first development. Inline Plans stay in the conversation; substantial
|
|
185
|
-
work uses persisted spec artifacts.
|
|
186
|
-
|
|
187
|
-
- `spec-orchestrator`: select Inline Plan or Spec-backed Plan and route the workflow
|
|
188
|
-
- `spec-brainstorm` → `design.md`: discovery, requirements, and architecture for substantial work
|
|
189
|
-
- `spec-plan`: produce a conversational Inline Plan or persisted `plan.json`
|
|
190
|
-
- `spec-implement`: execute approved Spec-backed Plans with TDD
|
|
191
|
-
- `spec-finish`: validate, review, and prepare Spec-backed Plans for a PR
|
|
192
|
-
|
|
193
|
-
#### Thinking (`oracle:*`)
|
|
194
|
-
|
|
195
|
-
These skills provide analytical methods and reasoning patterns that adapt to the problem at hand.
|
|
196
|
-
|
|
197
|
-
- `oracle-debug`: systematic debugging that finds the root cause before a fix
|
|
198
|
-
- `oracle-grill-me`: Socratic review of plans, specs, decisions, and ideas until ambiguity is resolved, shared understanding is reached, and the resulting domain language and decisions are recorded
|
|
199
|
-
- `oracle-domain-modelling`: build and refine the project's domain model
|
|
200
|
-
|
|
201
|
-
#### Utilities (`code:*`)
|
|
202
|
-
|
|
203
|
-
These skills handle discrete tasks when you invoke them.
|
|
204
|
-
|
|
205
|
-
- `code-commit`: generate and validate conventional commits
|
|
206
|
-
- `code-handoff`: turn a conversation into a handoff document
|
|
207
|
-
- `code-pull-request`: create, comment on, and merge GitHub pull requests or GitLab merge requests
|
|
208
|
-
- `code-review`: multi-agent code review with specialized reviewers
|
|
209
|
-
- `code-subagents`: dispatch patterns for parallel implementation
|
|
210
|
-
|
|
211
|
-
#### Stack-specific knowledge
|
|
212
|
-
|
|
213
|
-
Python and TypeScript skills provide technology-specific patterns and practices. They support work across the `spec`, `oracle`, and `code` namespaces.
|
|
214
|
-
|
|
215
|
-
**TypeScript (8 skills)**
|
|
216
|
-
- `typescript-api-design`: REST conventions, error responses, and pagination
|
|
217
|
-
- `typescript-fastify`: Fastify and TypeBox route handlers
|
|
218
|
-
- `typescript-drizzle-orm`: type-safe SQL schemas and queries
|
|
219
|
-
- `typescript-dynamodb-toolbox`: single-table design and GSIs
|
|
220
|
-
- `typescript-functional-patterns`: ADTs, branded types, and Option/Result
|
|
221
|
-
- `typescript-effect-ts`: functional effects, error handling, and resources
|
|
222
|
-
- `typescript-build-tools`: Bun, Vitest, Biome, and Turborepo
|
|
223
|
-
- `typescript-testing`: mocking, MSW, and snapshot testing
|
|
224
|
-
|
|
225
|
-
**Python (8 skills)**
|
|
226
|
-
- `python-architecture`: functional core/shell, DDD, and layered architecture
|
|
227
|
-
- `python-fastapi`: Pydantic validation, dependency injection, and OpenAPI
|
|
228
|
-
- `python-sqlalchemy`: ORM patterns, queries, async, and upserts
|
|
229
|
-
- `python-temporal`: workflow orchestration, activities, and error handling
|
|
230
|
-
- `python-modern-python`: type hints, generics, and pattern matching
|
|
231
|
-
- `python-monorepo`: uv workspaces and mise task orchestration
|
|
232
|
-
- `python-testing`: stub-driven TDD and pytest patterns
|
|
233
|
-
- `python-build-tools`: uv, ruff, basedpyright, and pytest configuration
|
|
234
|
-
|
|
235
|
-
Skills load based on their descriptions when the work calls for them. Install them once, then agents can use them as needed.
|
|
236
|
-
|
|
237
|
-
## How skills work
|
|
238
|
-
|
|
239
|
-
Skills load from context. For example, "create a spec for user auth" makes
|
|
240
|
-
`spec-orchestrator` select the spec-backed route and invoke `spec-brainstorm`.
|
|
241
|
-
|
|
242
|
-
### The planning workflow
|
|
243
|
-
|
|
244
|
-
For bounded work, `spec-plan` presents a simple Inline Plan for approval, then the agent
|
|
245
|
-
implements it directly. No spec artifacts, task tracking, or persisted-spec execution
|
|
246
|
-
workflow is involved.
|
|
247
|
-
|
|
248
|
-
The full planning workflow is:
|
|
249
|
-
|
|
250
|
-
```mermaid
|
|
251
|
-
graph LR
|
|
252
|
-
B[spec-brainstorm] --> D[design.md]
|
|
253
|
-
D --> G[oracle-grill-me]
|
|
254
|
-
G -->|design approved| P[spec-plan: review and approve]
|
|
255
|
-
G -.->|refine| D
|
|
256
|
-
P --> J[plan.json]
|
|
257
|
-
J --> I[spec-implement]
|
|
258
|
-
I --> F[spec-finish]
|
|
259
|
-
F --> PR[code-pull-request]
|
|
260
|
-
I -.->|revise plan| P
|
|
261
|
-
I -.->|design issue| B
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
The orchestrator chooses one route and states why:
|
|
265
|
-
|
|
266
|
-
- **Inline Plan (default):** bounded, well-understood work. The plan uses `context`, `scope`,
|
|
267
|
-
`changes`, `files`, and `validation` in conversation. It creates no spec or tracker artifacts.
|
|
268
|
-
- **Spec-backed Plan:** substantial work that needs discovery, architectural decisions,
|
|
269
|
-
dependency tracking, durable handoff, or explicit spec artifacts. It uses `design.md` and
|
|
270
|
-
`plan.json`.
|
|
271
|
-
|
|
272
|
-
Both routes require human approval before implementation. File count and estimated duration
|
|
273
|
-
alone do not make work spec-worthy, and the human can override the selected route.
|
|
274
|
-
|
|
275
|
-
### When to use which skill
|
|
276
|
-
|
|
277
|
-
| User says | Skill invoked |
|
|
278
|
-
|------------|---------------|
|
|
279
|
-
| "Create a spec for X" | spec-orchestrator → spec-brainstorm |
|
|
280
|
-
| "What should we build" | spec-orchestrator selects the planning route |
|
|
281
|
-
| "Write a plan" | spec-orchestrator → spec-plan (Inline by default) |
|
|
282
|
-
| "Implement this" | spec-orchestrator |
|
|
283
|
-
| "Review this code" | code-review |
|
|
284
|
-
| "Open a PR" | code-pull-request |
|
|
285
|
-
| "Merge this PR" | code-pull-request |
|
|
286
|
-
| "Read PR comments" | code-pull-request |
|
|
287
|
-
| "Leave a comment on the PR" | code-pull-request |
|
|
288
|
-
| "Debug this" | oracle-debug |
|
|
289
|
-
|
|
290
133
|
## Development
|
|
291
134
|
|
|
292
|
-
|
|
135
|
+
Load the repository directly in Claude Code:
|
|
293
136
|
|
|
294
137
|
```bash
|
|
295
138
|
claude --plugin-dir ./atelier
|
|
296
139
|
```
|
|
297
140
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
To work on the CLI itself:
|
|
141
|
+
Build and test the CLI:
|
|
301
142
|
|
|
302
143
|
```bash
|
|
303
|
-
# Build the CLI
|
|
304
144
|
bun run build
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
bun ./dist/atelier.js init --yes
|
|
145
|
+
bun test
|
|
146
|
+
bun run typecheck
|
|
308
147
|
```
|
|
309
148
|
|
|
149
|
+
Restart your coding harness after changing skills so it reloads their definitions.
|
|
150
|
+
|
|
310
151
|
## License
|
|
311
152
|
|
|
312
153
|
MIT Copyright (c) 2026 Martin Richards
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: atelier-orchestrator
|
|
3
3
|
description: >
|
|
4
4
|
Skill routing and workflow orchestration. Selects Inline Plan or Spec-backed Plan, routes
|
|
5
|
-
|
|
5
|
+
to the correct workflow skill, and manages transitions between phases. Use when starting
|
|
6
6
|
any conversation or task to determine which planning mode and skill apply.
|
|
7
7
|
user-invocable: false
|
|
8
8
|
---
|
|
@@ -76,7 +76,7 @@ Do not infer substantial work from size alone. If no concrete signal applies, us
|
|
|
76
76
|
## Skill Routing
|
|
77
77
|
|
|
78
78
|
```
|
|
79
|
-
|
|
79
|
+
atelier-orchestrator → Select and announce planning mode
|
|
80
80
|
spec-brainstorm → Spec-backed discovery + design → design.md
|
|
81
81
|
spec-plan → Inline Plan or Spec-backed Plan → approval
|
|
82
82
|
spec-implement → Execute approved Spec-backed Plans; track tasks
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: atelier-setup
|
|
3
|
+
description: Configure a repository's generic agent guidance for Atelier's development workflow. Use only when the user explicitly invokes atelier-setup; it inspects existing repository instructions and domain-document conventions, previews an idempotent project-guidance update, and writes only after approval. It does not install Atelier, configure a harness, or scaffold empty workflow artifacts.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Atelier Setup
|
|
8
|
+
|
|
9
|
+
Set up generic repository guidance that Atelier skills need without taking ownership of the
|
|
10
|
+
developer's installation, harness configuration, or project structure. Explore first, present
|
|
11
|
+
the proposed edit exactly, and write only after the developer approves it.
|
|
12
|
+
|
|
13
|
+
## 1. Explore
|
|
14
|
+
|
|
15
|
+
Read the repository before proposing any change:
|
|
16
|
+
|
|
17
|
+
- Root `AGENTS.md` and `CLAUDE.md`, if present. Note whether either already has an `## Agent skills`
|
|
18
|
+
heading.
|
|
19
|
+
- Root `CONTEXT.md` and `CONTEXT-MAP.md`.
|
|
20
|
+
- `docs/adr/` and any context-local `docs/adr/` directories.
|
|
21
|
+
- Genuine monorepo signals: a workspace manifest, or multiple independently deployable packages
|
|
22
|
+
with their own source directories.
|
|
23
|
+
|
|
24
|
+
Do not create, install, configure, or modify anything during exploration.
|
|
25
|
+
|
|
26
|
+
## 2. Present Findings
|
|
27
|
+
|
|
28
|
+
Summarize what exists and recommend a domain-document layout:
|
|
29
|
+
|
|
30
|
+
- **Single-context** is the default: domain language belongs in root `CONTEXT.md`; architectural
|
|
31
|
+
decisions belong in root `docs/adr/`.
|
|
32
|
+
- **Multi-context** is appropriate only when the repository has genuinely separate bounded
|
|
33
|
+
contexts. `CONTEXT-MAP.md` belongs at the root and points to each context's `CONTEXT.md` and
|
|
34
|
+
`docs/adr/` directory.
|
|
35
|
+
|
|
36
|
+
Explain that these documents remain lazy: do not create `CONTEXT.md`, `CONTEXT-MAP.md`, or an ADR
|
|
37
|
+
directory until another Atelier skill has resolved terminology or made a decision worth recording.
|
|
38
|
+
|
|
39
|
+
Select the instruction file to edit:
|
|
40
|
+
|
|
41
|
+
1. If both files exist, ask which file should own the agent guidance; do not duplicate it.
|
|
42
|
+
2. Otherwise use root `AGENTS.md` when it exists.
|
|
43
|
+
3. Otherwise use root `CLAUDE.md` when it exists.
|
|
44
|
+
4. If neither exists, ask which instruction file to create; do not choose on the developer's behalf.
|
|
45
|
+
|
|
46
|
+
Show the developer the selected file, domain layout, and the exact `## Agent skills` block that will be
|
|
47
|
+
written. Stop and wait for explicit approval.
|
|
48
|
+
|
|
49
|
+
## 3. Write After Approval
|
|
50
|
+
|
|
51
|
+
Add the following block to the selected instruction file:
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## Agent skills
|
|
55
|
+
|
|
56
|
+
### Planning and implementation
|
|
57
|
+
|
|
58
|
+
Use `atelier-orchestrator` at the start of development work. It selects an Inline Plan for bounded
|
|
59
|
+
changes or a Spec-backed Plan when durable design and coordination artifacts are warranted.
|
|
60
|
+
|
|
61
|
+
### Domain documentation
|
|
62
|
+
|
|
63
|
+
Before working in a domain area, read root `CONTEXT-MAP.md` when present and follow it to the
|
|
64
|
+
relevant context documentation. Otherwise, read root `CONTEXT.md` when present. Read relevant
|
|
65
|
+
architectural decisions under `docs/adr/` and any context-specific ADR directories.
|
|
66
|
+
|
|
67
|
+
If these documents do not exist, proceed silently. Create or update them only when domain
|
|
68
|
+
terminology or an architectural decision has been resolved.
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
If an `## Agent skills` section already exists, update the `### Planning and implementation` and
|
|
72
|
+
`### Domain documentation` subsections in place rather than appending duplicates. Preserve other
|
|
73
|
+
subsections and all content outside the section, including user edits. Do not create any other
|
|
74
|
+
files or directories.
|
|
75
|
+
|
|
76
|
+
## 4. Report
|
|
77
|
+
|
|
78
|
+
State which instruction file changed and the chosen domain-document layout. Remind the developer
|
|
79
|
+
that the layout is a convention only: the first domain-modelling or architectural-decision task
|
|
80
|
+
creates the relevant documents when it has substantive content.
|
|
@@ -673,7 +673,7 @@ prompt: |
|
|
|
673
673
|
|
|
674
674
|
YOUR FIRST TASK - LOOK FOR RELEVANT SKILLS:
|
|
675
675
|
As a Security Reviewer, look for relevant language, framework, testing, architecture, security, or tooling skills before reviewing.
|
|
676
|
-
Load relevant
|
|
676
|
+
Load relevant installed language, framework, testing, architecture, security, or tooling skills.
|
|
677
677
|
If no relevant skill is available or a skill cannot be loaded, continue with this reviewer prompt.
|
|
678
678
|
Failure to find or load a skill is not a review failure.
|
|
679
679
|
|
|
@@ -719,7 +719,7 @@ prompt: |
|
|
|
719
719
|
|
|
720
720
|
YOUR FIRST TASK - LOOK FOR RELEVANT SKILLS:
|
|
721
721
|
As a Correctness Reviewer, look for relevant language, framework, testing, architecture, security, or tooling skills before reviewing.
|
|
722
|
-
Load relevant
|
|
722
|
+
Load relevant installed language, framework, testing, architecture, security, or tooling skills.
|
|
723
723
|
If no relevant skill is available or a skill cannot be loaded, continue with this reviewer prompt.
|
|
724
724
|
Failure to find or load a skill is not a review failure.
|
|
725
725
|
|
|
@@ -755,7 +755,7 @@ prompt: |
|
|
|
755
755
|
|
|
756
756
|
YOUR FIRST TASK - LOOK FOR RELEVANT SKILLS:
|
|
757
757
|
As a PerformanceOperator Reviewer, look for relevant language, framework, testing, architecture, security, or tooling skills before reviewing.
|
|
758
|
-
Load relevant
|
|
758
|
+
Load relevant installed language, framework, testing, architecture, security, or tooling skills.
|
|
759
759
|
If no relevant skill is available or a skill cannot be loaded, continue with this reviewer prompt.
|
|
760
760
|
Failure to find or load a skill is not a review failure.
|
|
761
761
|
|
|
@@ -67,8 +67,8 @@ prompt: |
|
|
|
67
67
|
- Reviewers should load relevant skills that are available.
|
|
68
68
|
- If no relevant skill is available, reviewers continue with their reviewer prompt.
|
|
69
69
|
- Failure to find or load a skill is not a review failure.
|
|
70
|
-
- TypeScript →
|
|
71
|
-
- Python →
|
|
70
|
+
- TypeScript → installed TypeScript language, testing, and framework skills
|
|
71
|
+
- Python → installed Python language, testing, and framework skills
|
|
72
72
|
- Rust → rust-specific skills if available
|
|
73
73
|
- Go → go-specific skills if available
|
|
74
74
|
|
|
@@ -81,7 +81,7 @@ prompt: |
|
|
|
81
81
|
"domain": "web-api|frontend|database|..."
|
|
82
82
|
},
|
|
83
83
|
"reviewers": ["Security", "Correctness"],
|
|
84
|
-
"skills_to_load": ["
|
|
84
|
+
"skills_to_load": ["relevant installed testing skill"]
|
|
85
85
|
}
|
|
86
86
|
```
|
|
87
87
|
|
|
@@ -93,7 +93,7 @@ prompt: |
|
|
|
93
93
|
{
|
|
94
94
|
"context": { "language": "typescript", "framework": "fastify", "domain": "web-api" },
|
|
95
95
|
"reviewers": ["Security", "Correctness", "PerformanceOperator"],
|
|
96
|
-
"skills_to_load": ["
|
|
96
|
+
"skills_to_load": ["relevant installed testing skill"]
|
|
97
97
|
}
|
|
98
98
|
```
|
|
99
99
|
|
|
@@ -114,7 +114,7 @@ Reviewer names are prompt personas, not subagent types. Do not use `general`, `S
|
|
|
114
114
|
Before dispatching reviewers, the detected relevant skills are passed to each reviewer as best-effort guidance:
|
|
115
115
|
```json
|
|
116
116
|
{
|
|
117
|
-
"skills_to_load": ["
|
|
117
|
+
"skills_to_load": ["relevant installed testing skill"]
|
|
118
118
|
}
|
|
119
119
|
```
|
|
120
120
|
|
|
@@ -263,7 +263,7 @@ prompt: |
|
|
|
263
263
|
|
|
264
264
|
**PRE-STEP: Look for Relevant Skills**
|
|
265
265
|
Before reviewing, look for relevant architecture and language architecture skills.
|
|
266
|
-
Load relevant
|
|
266
|
+
Load relevant installed language, framework, testing, architecture, security, or tooling skills.
|
|
267
267
|
If no relevant skill is available or a skill cannot be loaded, continue with this architect prompt.
|
|
268
268
|
Failure to find or load a skill is not a review failure.
|
|
269
269
|
|
|
@@ -5,8 +5,8 @@ description: >
|
|
|
5
5
|
at a time, explores 2-3 approaches with trade-offs, and presents the design
|
|
6
6
|
section by section for approval before writing the spec. Combines requirements
|
|
7
7
|
discovery with codebase research and architecture design.
|
|
8
|
-
Use when the user explicitly requests a spec or when
|
|
9
|
-
Spec-backed Plan. Ambiguous design or discovery requests route through
|
|
8
|
+
Use when the user explicitly requests a spec or when atelier-orchestrator selects a
|
|
9
|
+
Spec-backed Plan. Ambiguous design or discovery requests route through atelier-orchestrator.
|
|
10
10
|
user-invocable: true
|
|
11
11
|
argument-hint: <topic or feature description>
|
|
12
12
|
---
|
|
@@ -18,7 +18,7 @@ Conversational design workshop for substantial work that produces a focused, rev
|
|
|
18
18
|
One question at a time. Multiple approaches explored. Design approved in
|
|
19
19
|
sections. Ruthless scope control. No implementation until design is approved.
|
|
20
20
|
|
|
21
|
-
Run this skill only after `
|
|
21
|
+
Run this skill only after `atelier-orchestrator` selects a Spec-backed Plan or the human
|
|
22
22
|
explicitly requests a spec. Bounded work should go directly to `spec-plan` for an Inline
|
|
23
23
|
Plan. Do not reclassify the planning mode here.
|
|
24
24
|
|
|
@@ -215,7 +215,7 @@ with acceptance criteria and priorities. If rejected: revise. If the rejection
|
|
|
215
215
|
reveals a scope misunderstanding, loop back to Discovery (Step 2).
|
|
216
216
|
|
|
217
217
|
**Batch B: Architecture** — component design, domain modeling, and layer
|
|
218
|
-
boundaries. Use
|
|
218
|
+
boundaries. Use installed language-specific architecture or API-design skills as relevant to
|
|
219
219
|
your stack. Then present: component structure, domain model, where business
|
|
220
220
|
logic lives, where IO lives. If rejected: revise. If the rejection undermines
|
|
221
221
|
the chosen approach, offer to return to approach exploration (4a). If it
|
|
@@ -346,5 +346,5 @@ approval before continuing.
|
|
|
346
346
|
The next step is **spec-plan** in Spec-backed mode. Do not start planning without the
|
|
347
347
|
human's go-ahead. Do not write code.
|
|
348
348
|
|
|
349
|
-
If planning reveals design flaws, loop back to research. See **
|
|
349
|
+
If planning reveals design flaws, loop back to research. See **atelier-orchestrator**
|
|
350
350
|
for iteration patterns.
|
|
@@ -112,8 +112,7 @@ Update the todo status to in_progress.
|
|
|
112
112
|
Read the task's **inputs** and **description** first.
|
|
113
113
|
|
|
114
114
|
Write tests that cover the validation criteria before writing implementation.
|
|
115
|
-
Invoke
|
|
116
|
-
for test design patterns when needed.
|
|
115
|
+
Invoke an installed language-specific testing skill when needed.
|
|
117
116
|
|
|
118
117
|
```
|
|
119
118
|
1. Read task inputs and description
|
|
@@ -294,5 +293,5 @@ Offer the human their options:
|
|
|
294
293
|
|
|
295
294
|
Don't choose for them. Present options and wait.
|
|
296
295
|
|
|
297
|
-
If validation finds bugs, loop back to implement. See **
|
|
296
|
+
If validation finds bugs, loop back to implement. See **atelier-orchestrator**
|
|
298
297
|
for iteration patterns.
|