@martinffx/atelier 3.1.0 → 3.1.2

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 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.1.2](https://github.com/martinffx/atelier/compare/v3.1.1...v3.1.2) (2026-08-09)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * **spec-implement:** persist missing plan artifacts ([8391bb6](https://github.com/martinffx/atelier/commit/8391bb62726ed189e1e745a7af69e385fa74c991))
13
+
14
+ ## [3.1.1](https://github.com/martinffx/atelier/compare/v3.1.0...v3.1.1) (2026-08-09)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **skills:** stop planning skills at artifact boundaries ([2626d8c](https://github.com/martinffx/atelier/commit/2626d8cd8ad2c18a3dc238f7491b9f231da143b7))
20
+
7
21
  ## [3.1.0](https://github.com/martinffx/atelier/compare/v3.0.2...v3.1.0) (2026-08-09)
8
22
 
9
23
 
package/README.md CHANGED
@@ -39,8 +39,10 @@ flowchart TD
39
39
 
40
40
  O -->|Bounded work| IP[spec-plan: Inline Plan]
41
41
  IP --> IA{Developer approval}
42
- IA -->|Approved| I[Implement directly]
42
+ IA -->|Approved| IS[Stop]
43
43
  IA -.->|Revise| IP
44
+
45
+ IS -->|New implementation request| I[Implement directly]
44
46
  I --> V[Validate]
45
47
  V -.->|Issues found| I
46
48
  IP -.->|Needs brainstorming| B
@@ -48,14 +50,16 @@ flowchart TD
48
50
 
49
51
  O -->|Substantial work| B[spec-brainstorm]
50
52
  B --> D[design.md]
51
- D --> G[oracle-grill-me]
53
+ D --> BS[Stop]
54
+ BS -->|New planning request| G[oracle-grill-me]
52
55
  G --> P[spec-plan]
53
56
  G -.->|Refine design| D
54
57
  P --> SA{Developer approval}
55
58
  SA -->|Approved| J[plan.json]
56
59
  SA -.->|Revise plan| P
57
60
  SA -.->|Revisit design| B
58
- J --> SI[spec-implement]
61
+ J --> PS[Stop]
62
+ PS -->|New implementation request| SI[spec-implement]
59
63
  SI --> CR[code-review]
60
64
  CR --> F[spec-finish]
61
65
  F --> PR[code-pull-request]
@@ -64,7 +68,7 @@ flowchart TD
64
68
  F -.->|Issues found| SI
65
69
  ```
66
70
 
67
- 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.
71
+ The workflow is deliberately harder to rush than an unstructured agent session. `spec-brainstorm` writes only `design.md`, and `spec-plan` writes only its selected plan output. Each skill then stops. The developer starts planning and implementation with separate requests. This records decisions when they need to survive the conversation, keeps implementation tied to an approved plan, and requires evidence before calling the work complete.
68
72
 
69
73
  ## Grill the idea
70
74
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@martinffx/atelier",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "description": "Personal development toolkit - spec-driven development, code quality, deep thinking, and ecosystem patterns",
5
5
  "type": "module",
6
6
  "bin": {
@@ -52,8 +52,9 @@ returning or persisting that prose, apply **humanizer** in embedded mode.
52
52
  Use for bounded, well-understood work, including ordinary features, bug fixes, refactors,
53
53
  configuration changes, and multi-file changes. Route to **spec-plan** with Inline mode
54
54
  explicitly selected. It presents a concise plan in conversation, creates no planning artifacts
55
- or tracker entries, and stops for approval. After approval, implement the plan directly; do
56
- not invoke `spec-implement`, `spec-finish`, or `code-subagents`.
55
+ or tracker entries, and stops for approval. Approval ends the `spec-plan` invocation. A later,
56
+ explicit implementation request may implement the plan directly; do not invoke
57
+ `spec-implement`, `spec-finish`, or `code-subagents` for Inline work.
57
58
 
58
59
  Direct Inline implementation must:
59
60
 
@@ -83,14 +84,17 @@ design.md ← spec-brainstorm (requirements + research + architecture)
83
84
  plan.json ← spec-plan (tasks, dependencies)
84
85
  ```
85
86
 
87
+ Each skill produces only its declared output and stops. The human starts the next phase with a
88
+ separate request.
89
+
86
90
  Do not infer substantial work from size alone. If no concrete signal applies, use Inline Plan.
87
91
 
88
92
  ## Skill Routing
89
93
 
90
94
  ```
91
95
  atelier-orchestrator → Select and announce planning mode
92
- spec-brainstorm → Spec-backed discovery + design → design.md
93
- spec-plan → Inline Plan or Spec-backed Plan → approval
96
+ spec-brainstorm → Spec-backed discovery + design → only design.md → stop
97
+ spec-plan → Inline conversation or only plan.json → stop
94
98
  spec-implement → Execute approved Spec-backed Plans; track tasks
95
99
  spec-finish → Post-implementation validation for Spec-backed Plans
96
100
  code-subagents → Parallel dispatch for Spec-backed Plan tasks
@@ -99,13 +103,16 @@ code-subagents → Parallel dispatch for Spec-backed Plan tasks
99
103
  ### Ordinary bounded work
100
104
 
101
105
  ```
102
- spec-plan (Inline mode) → approval → implement directly
106
+ spec-plan (Inline mode) → approval → STOP
107
+ new implementation request → implement directly
103
108
  ```
104
109
 
105
110
  ### Substantial work or explicit spec request
106
111
 
107
112
  ```
108
- spec-brainstorm → spec-plan (Spec-backed Plan) → approval → spec-implement → spec-finish
113
+ spec-brainstorm → design.md → STOP
114
+ new spec-plan request → plan.json → STOP
115
+ new spec-implement request → implementation → spec-finish
109
116
  ```
110
117
 
111
118
  ### Truly mechanical change
@@ -117,14 +124,17 @@ choice to review. If any choice exists, use an Inline Plan.
117
124
 
118
125
  | After completing... | Next step |
119
126
  |---------------------|-----------|
120
- | spec-brainstorm | spec-plan in Spec-backed mode |
121
- | approved Inline Plan | implement the approved plan directly |
122
- | approved Spec-backed Plan | spec-implement in Spec-backed mode |
127
+ | spec-brainstorm | Stop; wait for a separate spec-plan request |
128
+ | approved Inline Plan | Stop; wait for a separate implementation request |
129
+ | approved Spec-backed Plan | Stop; wait for a separate spec-implement request |
123
130
  | spec-implement | spec-finish |
124
131
 
125
132
  Do not begin implementation without an approved written plan. Spec-backed work must not
126
133
  jump from research to implementation.
127
134
 
135
+ `spec-brainstorm` and `spec-plan` are terminal within their invocation. They must not chain into
136
+ the next workflow skill, even when the original request asks for multiple phases at once.
137
+
128
138
  ## Iteration Patterns
129
139
 
130
140
  The workflow is not purely linear. Expect backflows:
@@ -3,8 +3,8 @@ name: spec-brainstorm
3
3
  description: >
4
4
  Conversational design workshop for substantial work. Interviews the human one question
5
5
  at a time, explores 2-3 approaches with trade-offs, and presents the design
6
- section by section for approval before writing the spec. Combines requirements
7
- discovery with codebase research and architecture design.
6
+ section by section for approval before writing only design.md, then stops. Combines
7
+ requirements discovery with codebase research and architecture design.
8
8
  Use when the user explicitly requests a spec or when atelier-orchestrator selects a
9
9
  Spec-backed Plan. Ambiguous design or discovery requests route through atelier-orchestrator.
10
10
  user-invocable: true
@@ -31,6 +31,14 @@ docs/specs/YYYY-MM-DD-<feature>/
31
31
 
32
32
  Requirements are inline — no separate requirements.json needed.
33
33
 
34
+ ### Exclusive output contract
35
+
36
+ This skill may create or update only the `design.md` shown above. It may inspect the
37
+ repository and discuss drafts in conversation, but it must not modify any other file, create
38
+ `plan.json`, create tracker entries, invoke another workflow skill, or write implementation
39
+ code. This boundary still applies when the human asks to brainstorm, plan, and implement in
40
+ one request. Finish `design.md`, report it, and stop.
41
+
34
42
  ---
35
43
 
36
44
  ## Lessons
@@ -265,9 +273,9 @@ If you loop twice on the same batch, stop and ask:
265
273
 
266
274
  > "We've looped on [batch] twice. Should we reconsider the approach?"
267
275
 
268
- **Terminology discipline:** while drafting batches, challenge terms against
269
- `CONTEXT.md` and update it inline as terms resolve, using the **oracle-domain-modelling**
270
- skill. If domain confusion runs deep, suggest pausing for **oracle-grill-me** before continuing.
276
+ **Terminology discipline:** while drafting batches, challenge terms against `CONTEXT.md` and
277
+ record resolved terminology in `design.md`. Do not update `CONTEXT.md` from this skill. If
278
+ domain confusion runs deep, suggest pausing for **oracle-grill-me** before continuing.
271
279
 
272
280
  ### 4c. Write the spec
273
281
 
@@ -360,16 +368,17 @@ note them at handoff.
360
368
 
361
369
  **Tell the human:**
362
370
 
363
- > "Spec written to `docs/specs/<path>`. Please confirm this assembled document before we move to
364
- > the Spec-backed Plan."
371
+ > "Brainstorm complete. Design written to `docs/specs/<path>/design.md`. A separate
372
+ > `spec-plan` invocation can create `plan.json` after you approve this document."
365
373
 
366
374
  If the human requests changes — in conversation or by annotating the file — address every note,
367
375
  update the spec, and re-run the self-review. If a change alters the substance of an approved
368
376
  section, re-present that section for approval before continuing. Resolve questions that affect
369
377
  scope, architecture, contracts, data, security, or task ordering before handoff.
370
378
 
371
- The next step is **spec-plan** in Spec-backed mode. Do not start planning without the
372
- human's go-ahead. Do not write code.
379
+ Stop after reporting the completed `design.md`. Do not invoke `spec-plan`, offer to continue
380
+ automatically, create `plan.json`, or write code. The human must start the next phase with a
381
+ separate request.
373
382
 
374
383
  If planning reveals design flaws, loop back to research. See **atelier-orchestrator**
375
384
  for iteration patterns.
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: spec-implement
3
3
  description: >
4
- Execute an approved Spec-backed Plan from plan.json. Uses task tracking when useful, enforces
5
- TDD, and reports between batches. Trigger when the user says "implement", "go", "start", or
6
- "do it" after approving a persisted plan. Do NOT use without an approved Spec-backed Plan.
4
+ Continue an approved Spec-backed workflow when the user says "implement", "go", "start", or
5
+ "do it". After Codex Plan Mode, persist the next missing design.md or plan.json artifact and
6
+ stop. When both artifacts exist, execute plan.json with TDD and report between batches.
7
7
  user-invocable: true
8
8
  ---
9
9
 
@@ -14,21 +14,30 @@ when blocked.
14
14
 
15
15
  **Announce at start:** "I'm using the spec-implement skill to execute this plan."
16
16
 
17
- This skill does not make design decisions or modify the plan. If the plan is wrong, go
18
- back to spec-plan. If the design is wrong, go back to spec-brainstorm.
17
+ This skill does not make design decisions or change approved content. It may persist approved
18
+ content from the conversation when Plan Mode could not write the required artifact. If the plan
19
+ is wrong, go back to spec-plan. If the design is wrong, go back to spec-brainstorm.
19
20
 
20
21
  ## Prerequisites
21
22
 
22
- Before starting, verify these exist:
23
-
24
- 1. Approved `docs/specs/YYYY-MM-DD-<feature>/design.md`
25
- 2. Approved `docs/specs/YYYY-MM-DD-<feature>/plan.json`
26
- 3. Any tracker entries selected during planning are available, along with
27
- `docs/agents/issue-tracker.md` when tracking is configured
28
- 4. You are not on main/master without explicit user consent. Create a branch or use a git
29
- worktree first.
30
-
31
- If anything is missing, do not proceed. Tell the human what's needed.
23
+ Resolve required artifacts in order before starting product implementation:
24
+
25
+ 1. If `docs/specs/YYYY-MM-DD-<feature>/design.md` is missing, write it from the approved design
26
+ in the current conversation. Validate the file, report its path, and stop. Do not create
27
+ `plan.json` or start implementation in the same invocation.
28
+ 2. Otherwise, if `docs/specs/YYYY-MM-DD-<feature>/plan.json` is missing, write it from the
29
+ approved plan in the current conversation. Validate it against the schema in `spec-plan`,
30
+ report its path, and stop. Do not start implementation in the same invocation.
31
+ 3. If the approved content needed for the next missing artifact is not available in the current
32
+ conversation, stop and tell the human what content is unavailable. Do not ask the human to
33
+ create the file.
34
+ 4. When both artifacts exist, verify that any tracker entries selected during planning are
35
+ available, along with `docs/agents/issue-tracker.md` when tracking is configured.
36
+ 5. Verify that you are not on main/master without explicit user consent. Create a branch or use
37
+ a git worktree first.
38
+
39
+ Each invocation creates at most one missing artifact. Only proceed to product implementation
40
+ when both approved artifacts existed at the start of the invocation.
32
41
 
33
42
  ---
34
43
 
@@ -3,7 +3,8 @@ name: spec-plan
3
3
  description: >
4
4
  Write approved implementation plans in one of two modes. Explicit Inline mode creates a
5
5
  conversational plan for bounded work. Spec-backed Plan converts an approved design.md into
6
- plan.json and optional tracked tasks. Trigger after atelier-orchestrator selects a mode, when
6
+ plan.json. Both modes stop after producing their plan output. Trigger after
7
+ atelier-orchestrator selects a mode, when
7
8
  the user asks to plan work, or after spec-brainstorm completes. Direct invocation without a
8
9
  selected mode uses Spec-backed Plan. Do NOT use for research or execution.
9
10
  user-invocable: true
@@ -13,13 +14,25 @@ user-invocable: true
13
14
 
14
15
  Write a proportional plan so clear that any engineer can follow it. The selected planning
15
16
  mode determines whether the plan stays in the conversation or becomes a persisted structured
16
- artifact. This skill does not write code.
17
+ artifact. This skill does not write code or start implementation.
17
18
 
18
19
  `atelier-orchestrator` owns automatic classification and the human may override it. When this
19
20
  skill is directly invoked without a selected mode, use Spec-backed Plan. If Inline planning
20
21
  reveals substantial design or coordination needs, ask the human whether to switch to a
21
22
  Spec-backed Plan before presenting the plan.
22
23
 
24
+ ## Terminal boundary
25
+
26
+ This skill produces exactly one plan output and then stops:
27
+
28
+ - Inline mode presents the plan in conversation and changes no repository files.
29
+ - Spec-backed mode creates or updates only `plan.json` from an approved `design.md`.
30
+
31
+ Planning drafts and annotation cycles stay in conversation. Do not modify `design.md`, persist
32
+ a Markdown plan draft, create tracker entries, invoke another workflow skill, or edit
33
+ implementation files. These rules still apply when the human asks to plan and implement in one
34
+ request. Implementation requires a later, explicit request after this skill has finished.
35
+
23
36
  ## Planning Rules
24
37
 
25
38
  - Organize tasks around required behavior, not one task per layer.
@@ -70,11 +83,11 @@ Every revision invalidates prior approval. End each revised plan with "Inline Pl
70
83
  for review." and stop until the human explicitly approves that complete version. Do not
71
84
  implement until the current plan is approved.
72
85
 
73
- Approval authorizes implementation. Implement the approved conversational plan directly using
74
- the Inline execution safeguards in `atelier-orchestrator`. Do not invoke `spec-implement`,
75
- `spec-finish`, `code-subagents`, or task tracking.
76
-
77
- Do not create planning artifacts or tracker entries during this handoff.
86
+ When the human approves the Inline Plan, acknowledge that the plan is approved and stop. Do not
87
+ implement it in the same invocation. A later explicit implementation request may execute the
88
+ approved conversational plan directly using the Inline execution safeguards in
89
+ `atelier-orchestrator`; it does not use `spec-implement`, `spec-finish`, `code-subagents`, or
90
+ task tracking.
78
91
 
79
92
  ## Spec-backed Plan Artifacts
80
93
 
@@ -84,8 +97,8 @@ docs/specs/YYYY-MM-DD-<feature-name>/
84
97
  └── plan.json ← This skill's output
85
98
  ```
86
99
 
87
- The plan starts as a markdown draft for human annotation, then gets converted to
88
- structured plan.json when approved.
100
+ The plan starts as a conversational draft for human annotation, then gets converted to
101
+ structured `plan.json` when approved.
89
102
 
90
103
  ### plan.json Schema
91
104
 
@@ -179,8 +192,8 @@ structured plan.json when approved.
179
192
 
180
193
  ## Spec-backed Step 1: Write the Plan Draft
181
194
 
182
- Read the approved design.md, then write a plan as a markdown section in the same
183
- document or as a separate draft.
195
+ Read the approved `design.md`, then present the plan draft in conversation. Do not write the
196
+ draft into `design.md` or create a separate draft file.
184
197
 
185
198
  ### Plan quality
186
199
 
@@ -256,25 +269,12 @@ explicitly approves it.
256
269
  When the human approves — "looks good", "approved", "create tasks" — convert the plan
257
270
  into plan.json.
258
271
 
259
- ### Task Tracking
260
-
261
- Read `docs/agents/issue-tracker.md` when it exists. Create tracker entries only when that
262
- document configures a tracker, mirroring is enabled, and tracking adds execution value. Do not
263
- choose or configure a tracker here. Do not duplicate a simple plan.json into a tracker merely to
264
- satisfy the workflow.
265
-
266
272
  ### What to do
267
273
 
268
274
  1. Convert the annotated plan draft into structured plan.json
269
275
  2. Each task maps to a unit with inputs, description, files, and validation
270
276
  3. Dependencies between tasks are captured in `depends_on` fields
271
- 4. When execution benefits from configured task tracking, create entries according to
272
- `docs/agents/issue-tracker.md`:
273
- - Create any configured feature container
274
- - Add tasks with clear descriptions
275
- - Mirror dependencies when the configured tracker supports them
276
- 5. The plan.json is the source of truth for task details; the task tracker
277
- tracks execution state
277
+ 4. Do not create tracker entries or modify any file other than `plan.json`
278
278
 
279
279
  ### Verification
280
280
 
@@ -294,18 +294,15 @@ After creating plan.json, verify:
294
294
 
295
295
  ## Handoff
296
296
 
297
- When plan.json is created, and any useful configured tracker entries have been created, the next
298
- step is **spec-implement** in Spec-backed mode.
297
+ When `plan.json` is created, report its path and stop.
299
298
 
300
299
  Tell the human:
301
300
 
302
- > "Spec-backed Plan is approved. Ready to start implementation?"
303
- >
304
- > **Autonomous** — I'll work through all tasks, only stopping if blocked.
305
- >
306
- > **Batched** — I'll do 3-5 tasks at a time, then report and wait for feedback.
301
+ > "Planning complete. Plan written to `docs/specs/<path>/plan.json`. A separate
302
+ > `spec-implement` invocation can execute it."
307
303
 
308
- Do not start implementing. That's spec-implement's job.
304
+ Do not invoke `spec-implement`, offer execution modes, or start implementing. The human must
305
+ start implementation with a separate request.
309
306
 
310
307
  Minor implementation deviations may be recorded inline and reflected in plan.json when they do
311
308
  not change approved behavior, scope, architecture, public contracts, or major dependencies.
@@ -320,7 +317,7 @@ spec-brainstorm. See **atelier-orchestrator** for iteration patterns.
320
317
  |----------------------------|--------|
321
318
  | Inline / "write a plan" | Present the complete Inline Plan from the template, stop |
322
319
  | Inline / "I added notes" | Apply the changes, re-present the entire updated Inline Plan, and stop for renewed approval |
323
- | Inline / "approved" | Implement the approved conversational plan directly; create no artifacts |
320
+ | Inline / "approved" | Acknowledge approval and stop; create no artifacts and do not implement |
324
321
  | Spec-backed / "write a plan" | Write the plan draft from design.md, stop |
325
322
  | Spec-backed / "I added notes" | Re-read, address all notes, do NOT implement |
326
- | Spec-backed / "approved" / "create tasks" | Create plan.json and useful task tracking |
323
+ | Spec-backed / "approved" / "create tasks" | Create only plan.json, report its path, and stop |