@ancleto/spec 0.6.2 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +184 -91
- package/agents/coder.md +11 -11
- package/agents/documenter.md +27 -27
- package/agents/orchestrator.md +8 -8
- package/agents/reviewer.md +13 -13
- package/agents/spec-writer.md +11 -11
- package/agents/technical-discovery.md +5 -5
- package/agents/technical-seed-writer.md +1 -1
- package/agents/tester.md +9 -9
- package/commands/{opsx-apply.md → cleto-apply.md} +9 -9
- package/commands/{opsx-archive.md → cleto-archive.md} +16 -16
- package/commands/{opsx-bulk-archive.md → cleto-bulk-archive.md} +8 -8
- package/commands/{opsx-continue.md → cleto-continue.md} +8 -8
- package/commands/{opsx-explore.md → cleto-explore.md} +9 -9
- package/commands/{opsx-ff.md → cleto-ff.md} +10 -12
- package/commands/{opsx-new.md → cleto-new.md} +12 -14
- package/commands/{opsx-onboard.md → cleto-onboard.md} +45 -57
- package/commands/{opsx-propose.md → cleto-propose.md} +11 -13
- package/commands/{opsx-recall.md → cleto-recall.md} +6 -6
- package/commands/{opsx-sync.md → cleto-sync.md} +6 -6
- package/commands/{opsx-verify.md → cleto-verify.md} +5 -5
- package/package.json +2 -2
- package/skills/{openspec-apply → ancleto-apply}/SKILL.md +6 -6
- package/skills/{openspec-archive → ancleto-archive}/SKILL.md +10 -10
- package/skills/{openspec-bulk-archive → ancleto-bulk-archive}/SKILL.md +8 -8
- package/skills/{openspec-continue → ancleto-continue}/SKILL.md +7 -7
- package/skills/{openspec-explore → ancleto-explore}/SKILL.md +6 -6
- package/skills/{openspec-ff → ancleto-ff}/SKILL.md +4 -4
- package/skills/{openspec-new → ancleto-new}/SKILL.md +6 -6
- package/skills/{openspec-onboard → ancleto-onboard}/SKILL.md +20 -20
- package/skills/{openspec-propose → ancleto-propose}/SKILL.md +6 -6
- package/skills/{openspec-recall → ancleto-recall}/SKILL.md +3 -3
- package/skills/{openspec-sync-specs → ancleto-sync-specs}/SKILL.md +7 -7
- package/skills/ancleto-upgrade/SKILL.md +11 -13
- package/skills/ancleto-upgrade/references/templates.md +1 -1
- package/skills/{openspec-verify → ancleto-verify}/SKILL.md +5 -5
- package/skills/{openspec-workflow → ancleto-workflow}/SKILL.md +19 -19
- package/skills/triage-clarifier/SKILL.md +1 -1
- package/src/cli/index.js +40 -20
- package/templates/AGENTS.md +4 -4
- package/templates/PRODUCT.md +1 -1
|
@@ -4,7 +4,7 @@ description: Create a change and generate all artifacts needed for implementatio
|
|
|
4
4
|
|
|
5
5
|
Fast-forward through artifact creation - generate everything needed to start implementation.
|
|
6
6
|
|
|
7
|
-
**Input**: The argument after `/
|
|
7
|
+
**Input**: The argument after `/cleto-ff` is the change name (kebab-case), OR a description of what the user wants to build.
|
|
8
8
|
|
|
9
9
|
**Steps**
|
|
10
10
|
|
|
@@ -13,7 +13,7 @@ Fast-forward through artifact creation - generate everything needed to start imp
|
|
|
13
13
|
Resolve Work Item context in this order — stop at the first source that yields data:
|
|
14
14
|
|
|
15
15
|
a. **In-session context** — If WI data was already fetched in this session, use it. Proceed to name derivation below.
|
|
16
|
-
b. **`context.md`** — If a change name was provided as argument and `
|
|
16
|
+
b. **`context.md`** — If a change name was provided as argument and `aspec/changes/<name>/context.md` exists, read it and use its content. Proceed to name derivation.
|
|
17
17
|
c. **Ask the user** — Use the **AskUserQuestion tool** to ask for the Work Item reference. Two accepted formats:
|
|
18
18
|
|
|
19
19
|
- **ID + Project** — e.g., ID `12345` and project `MyProject`
|
|
@@ -42,16 +42,14 @@ Fast-forward through artifact creation - generate everything needed to start imp
|
|
|
42
42
|
|
|
43
43
|
2. **Create the change directory**
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
openspec new change "<name>"
|
|
47
|
-
```
|
|
45
|
+
Create the directory `aspec/changes/<name>/` in the repository.
|
|
48
46
|
|
|
49
|
-
This
|
|
47
|
+
This scaffolds the change at `aspec/changes/<name>/`.
|
|
50
48
|
|
|
51
49
|
3. **Get the artifact build order**
|
|
52
50
|
|
|
53
51
|
```bash
|
|
54
|
-
|
|
52
|
+
aspec status --change "<name>" --json
|
|
55
53
|
```
|
|
56
54
|
|
|
57
55
|
Parse the JSON to get:
|
|
@@ -69,7 +67,7 @@ Fast-forward through artifact creation - generate everything needed to start imp
|
|
|
69
67
|
|
|
70
68
|
- Get instructions:
|
|
71
69
|
```bash
|
|
72
|
-
|
|
70
|
+
aspec instructions <artifact-id> --change "<name>" --json
|
|
73
71
|
```
|
|
74
72
|
- The instructions JSON includes:
|
|
75
73
|
- `context`: Project background (constraints for you - do NOT include in output)
|
|
@@ -87,7 +85,7 @@ Fast-forward through artifact creation - generate everything needed to start imp
|
|
|
87
85
|
|
|
88
86
|
b. **Continue until all `applyRequires` artifacts are complete**
|
|
89
87
|
|
|
90
|
-
- After creating each artifact, re-run `
|
|
88
|
+
- After creating each artifact, re-run `aspec status --change "<name>" --json`
|
|
91
89
|
- Check if every artifact ID in `applyRequires` has `status: "done"` in the artifacts array
|
|
92
90
|
- Stop when all `applyRequires` artifacts are done
|
|
93
91
|
|
|
@@ -98,7 +96,7 @@ Fast-forward through artifact creation - generate everything needed to start imp
|
|
|
98
96
|
|
|
99
97
|
5. **Show final status**
|
|
100
98
|
```bash
|
|
101
|
-
|
|
99
|
+
aspec status --change "<name>"
|
|
102
100
|
```
|
|
103
101
|
|
|
104
102
|
**Output**
|
|
@@ -108,11 +106,11 @@ After completing all artifacts, summarize:
|
|
|
108
106
|
- Change name and location
|
|
109
107
|
- List of artifacts created with brief descriptions
|
|
110
108
|
- What's ready: "All artifacts created! Ready for implementation."
|
|
111
|
-
- Prompt: "Run `/
|
|
109
|
+
- Prompt: "Run `/cleto-apply` to start implementing."
|
|
112
110
|
|
|
113
111
|
**Artifact Creation Guidelines**
|
|
114
112
|
|
|
115
|
-
- Follow the `instruction` field from `
|
|
113
|
+
- Follow the `instruction` field from `aspec instructions` for each artifact type
|
|
116
114
|
- The schema defines what each artifact should contain - follow it
|
|
117
115
|
- Read dependency artifacts for context before creating new ones
|
|
118
116
|
- Use `template` as the structure for your output file - fill in its sections
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Start a new change using the experimental artifact workflow
|
|
2
|
+
description: Start a new change using the experimental artifact workflow
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
Start a new change using the experimental artifact-driven approach.
|
|
6
6
|
|
|
7
|
-
**Input**: The argument after `/
|
|
7
|
+
**Input**: The argument after `/cleto-new` is the change name (kebab-case), OR a description of what the user wants to build.
|
|
8
8
|
|
|
9
9
|
**Steps**
|
|
10
10
|
|
|
@@ -13,7 +13,7 @@ Start a new change using the experimental artifact-driven approach.
|
|
|
13
13
|
Resolve Work Item context in this order — stop at the first source that yields data:
|
|
14
14
|
|
|
15
15
|
a. **In-session context** — If WI data was already fetched in this session, use it. Proceed to name derivation below.
|
|
16
|
-
b. **`context.md`** — If a change name was provided as argument and `
|
|
16
|
+
b. **`context.md`** — If a change name was provided as argument and `aspec/changes/<name>/context.md` exists, read it and use its content. Proceed to name derivation.
|
|
17
17
|
c. **Ask the user** — Use the **AskUserQuestion tool** to ask for the Work Item reference. Two accepted formats:
|
|
18
18
|
|
|
19
19
|
- **ID + Project** — e.g., ID `12345` and project `MyProject`
|
|
@@ -45,22 +45,20 @@ Start a new change using the experimental artifact-driven approach.
|
|
|
45
45
|
**Use a different schema only if the user mentions:**
|
|
46
46
|
|
|
47
47
|
- A specific schema name → use `--schema <name>`
|
|
48
|
-
- "show workflows" or "what workflows" → run `
|
|
48
|
+
- "show workflows" or "what workflows" → run `aspec schemas --json` and let them choose
|
|
49
49
|
|
|
50
50
|
**Otherwise**: Omit `--schema` to use the default.
|
|
51
51
|
|
|
52
52
|
3. **Create the change directory**
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
openspec new change "<name>"
|
|
56
|
-
```
|
|
54
|
+
Create the directory `aspec/changes/<name>/` in the repository.
|
|
57
55
|
|
|
58
|
-
|
|
59
|
-
This
|
|
56
|
+
Record the schema selection in the change metadata only if the user requested a specific workflow.
|
|
57
|
+
This scaffolds the change at `aspec/changes/<name>/` with the selected schema.
|
|
60
58
|
|
|
61
59
|
4. **Persist Work Item context to `context.md`** (only if WI was resolved in step 1)
|
|
62
60
|
|
|
63
|
-
Write WI context to `
|
|
61
|
+
Write WI context to `aspec/changes/<name>/context.md`:
|
|
64
62
|
|
|
65
63
|
```
|
|
66
64
|
# Work Item Context
|
|
@@ -82,7 +80,7 @@ Start a new change using the experimental artifact-driven approach.
|
|
|
82
80
|
5. **Show the artifact status**
|
|
83
81
|
|
|
84
82
|
```bash
|
|
85
|
-
|
|
83
|
+
aspec status --change "<name>"
|
|
86
84
|
```
|
|
87
85
|
|
|
88
86
|
This shows which artifacts need to be created and which are ready (dependencies satisfied).
|
|
@@ -91,7 +89,7 @@ Start a new change using the experimental artifact-driven approach.
|
|
|
91
89
|
The first artifact depends on the schema. Check the status output to find the first artifact with status "ready".
|
|
92
90
|
|
|
93
91
|
```bash
|
|
94
|
-
|
|
92
|
+
aspec instructions <first-artifact-id> --change "<name>"
|
|
95
93
|
```
|
|
96
94
|
|
|
97
95
|
This outputs the template and context for creating the first artifact.
|
|
@@ -106,12 +104,12 @@ After completing the steps, summarize:
|
|
|
106
104
|
- Schema/workflow being used and its artifact sequence
|
|
107
105
|
- Current status (0/N artifacts complete)
|
|
108
106
|
- The template for the first artifact
|
|
109
|
-
- Prompt: "Ready to create the first artifact? Run `/
|
|
107
|
+
- Prompt: "Ready to create the first artifact? Run `/cleto-continue` or just describe what this change is about and I'll draft it."
|
|
110
108
|
|
|
111
109
|
**Guardrails**
|
|
112
110
|
|
|
113
111
|
- Do NOT create any artifacts yet - just show the instructions
|
|
114
112
|
- Do NOT advance beyond showing the first artifact template
|
|
115
113
|
- If the name is invalid (not kebab-case), ask for a valid name
|
|
116
|
-
- If a change with that name already exists, suggest using `/
|
|
114
|
+
- If a change with that name already exists, suggest using `/cleto-continue` instead
|
|
117
115
|
- Pass --schema if using a non-default workflow
|
|
@@ -1,27 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Guided onboarding - walk through a complete
|
|
2
|
+
description: Guided onboarding - walk through a complete aspec workflow cycle with narration
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
Guide the user through their first complete
|
|
5
|
+
Guide the user through their first complete aspec workflow cycle. This is a teaching experience—you'll do real work in their codebase while explaining each step.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Preflight
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
# Unix/macOS
|
|
15
|
-
openspec --version 2>&1 || echo "CLI_NOT_INSTALLED"
|
|
16
|
-
# Windows (PowerShell)
|
|
17
|
-
# if (Get-Command openspec -ErrorAction SilentlyContinue) { openspec --version } else { echo "CLI_NOT_INSTALLED" }
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
**If CLI not installed:**
|
|
21
|
-
|
|
22
|
-
> OpenSpec CLI is not installed. Install it first, then come back to `/opsx-onboard`.
|
|
23
|
-
|
|
24
|
-
Stop here if not installed.
|
|
11
|
+
No external binaries are required: the change cycle runs on the aspec skills bundled
|
|
12
|
+
with your agent (`/cleto-*`). Proceed directly.
|
|
25
13
|
|
|
26
14
|
---
|
|
27
15
|
|
|
@@ -30,7 +18,7 @@ Stop here if not installed.
|
|
|
30
18
|
Display:
|
|
31
19
|
|
|
32
20
|
```
|
|
33
|
-
## Welcome to
|
|
21
|
+
## Welcome to aspec!
|
|
34
22
|
|
|
35
23
|
I'll walk you through a complete change cycle—from idea to implementation—using a real task in your codebase. Along the way, you'll learn the workflow by doing it.
|
|
36
24
|
|
|
@@ -110,7 +98,7 @@ Which task interests you? (Pick a number or describe your own)
|
|
|
110
98
|
If the user picks or describes something too large (major feature, multi-day work):
|
|
111
99
|
|
|
112
100
|
```
|
|
113
|
-
That's a valuable task, but it's probably larger than ideal for your first
|
|
101
|
+
That's a valuable task, but it's probably larger than ideal for your first aspec run-through.
|
|
114
102
|
|
|
115
103
|
For learning the workflow, smaller is better—it lets you see the full cycle without getting stuck in implementation details.
|
|
116
104
|
|
|
@@ -149,7 +137,7 @@ Spend 1-2 minutes investigating the relevant code:
|
|
|
149
137
|
│ [Optional: ASCII diagram if helpful] │
|
|
150
138
|
└─────────────────────────────────────────┘
|
|
151
139
|
|
|
152
|
-
Explore mode (`/
|
|
140
|
+
Explore mode (`/cleto-explore`) is for this kind of thinking—investigating before implementing. You can use it anytime you need to think through a problem.
|
|
153
141
|
|
|
154
142
|
Now let's create a change to hold our work.
|
|
155
143
|
```
|
|
@@ -165,26 +153,26 @@ Now let's create a change to hold our work.
|
|
|
165
153
|
```
|
|
166
154
|
## Creating a Change
|
|
167
155
|
|
|
168
|
-
A "change" in
|
|
156
|
+
A "change" in aspec is a container for all the thinking and planning around a piece of work. It lives in `aspec/changes/<name>/` and holds your artifacts—proposal, specs, design, tasks.
|
|
169
157
|
|
|
170
158
|
Let me create one for our task.
|
|
171
159
|
```
|
|
172
160
|
|
|
173
|
-
**DO:** Create the change with a derived kebab-case name:
|
|
161
|
+
**DO:** Create the change directory with a derived kebab-case name:
|
|
174
162
|
|
|
175
163
|
```bash
|
|
176
|
-
|
|
164
|
+
mkdir -p aspec/changes/<derived-name>
|
|
177
165
|
```
|
|
178
166
|
|
|
179
167
|
**SHOW:**
|
|
180
168
|
|
|
181
169
|
```
|
|
182
|
-
Created: `
|
|
170
|
+
Created: `aspec/changes/<name>/`
|
|
183
171
|
|
|
184
172
|
The folder structure:
|
|
185
173
|
```
|
|
186
174
|
|
|
187
|
-
|
|
175
|
+
aspec/changes/<name>/
|
|
188
176
|
├── proposal.md ← Why we're doing this (empty, we'll fill it)
|
|
189
177
|
├── design.md ← How we'll build it (empty)
|
|
190
178
|
├── specs/ ← Detailed requirements (empty)
|
|
@@ -247,10 +235,10 @@ Does this capture the intent? I can adjust before we save it.
|
|
|
247
235
|
After approval, save the proposal:
|
|
248
236
|
|
|
249
237
|
```bash
|
|
250
|
-
|
|
238
|
+
aspec instructions proposal --change "<name>" --json
|
|
251
239
|
```
|
|
252
240
|
|
|
253
|
-
Then write the content to `
|
|
241
|
+
Then write the content to `aspec/changes/<name>/proposal.md`.
|
|
254
242
|
|
|
255
243
|
```
|
|
256
244
|
Proposal saved. This is your "why" document—you can always come back and refine it as understanding evolves.
|
|
@@ -276,9 +264,9 @@ For a small task like this, we might only need one spec file.
|
|
|
276
264
|
|
|
277
265
|
```bash
|
|
278
266
|
# Unix/macOS
|
|
279
|
-
mkdir -p
|
|
267
|
+
mkdir -p aspec/changes/<name>/specs/<capability-name>
|
|
280
268
|
# Windows (PowerShell)
|
|
281
|
-
# New-Item -ItemType Directory -Force -Path "
|
|
269
|
+
# New-Item -ItemType Directory -Force -Path "aspec/changes/<name>/specs/<capability-name>"
|
|
282
270
|
```
|
|
283
271
|
|
|
284
272
|
Draft the spec content:
|
|
@@ -305,7 +293,7 @@ Here's the spec:
|
|
|
305
293
|
This format—WHEN/THEN/AND—makes requirements testable. You can literally read them as test cases.
|
|
306
294
|
```
|
|
307
295
|
|
|
308
|
-
Save to `
|
|
296
|
+
Save to `aspec/changes/<name>/specs/<capability>/spec.md`.
|
|
309
297
|
|
|
310
298
|
---
|
|
311
299
|
|
|
@@ -351,7 +339,7 @@ Here's the design:
|
|
|
351
339
|
For a small task, this captures the key decisions without over-engineering.
|
|
352
340
|
```
|
|
353
341
|
|
|
354
|
-
Save to `
|
|
342
|
+
Save to `aspec/changes/<name>/design.md`.
|
|
355
343
|
|
|
356
344
|
---
|
|
357
345
|
|
|
@@ -390,7 +378,7 @@ Each checkbox becomes a unit of work in the apply phase. Ready to implement?
|
|
|
390
378
|
|
|
391
379
|
**PAUSE** - Wait for user to confirm they're ready to implement.
|
|
392
380
|
|
|
393
|
-
Save to `
|
|
381
|
+
Save to `aspec/changes/<name>/tasks.md`.
|
|
394
382
|
|
|
395
383
|
---
|
|
396
384
|
|
|
@@ -436,7 +424,7 @@ The change is implemented! One more step—let's archive it.
|
|
|
436
424
|
```
|
|
437
425
|
## Archiving
|
|
438
426
|
|
|
439
|
-
When a change is complete, we archive it. This moves it from `
|
|
427
|
+
When a change is complete, we archive it. This moves it from `aspec/changes/` to `aspec/changes/archive/YYYY-MM-DD-<name>/`.
|
|
440
428
|
|
|
441
429
|
Archived changes become your project's decision history—you can always find them later to understand why something was built a certain way.
|
|
442
430
|
```
|
|
@@ -444,13 +432,13 @@ Archived changes become your project's decision history—you can always find th
|
|
|
444
432
|
**DO:**
|
|
445
433
|
|
|
446
434
|
```bash
|
|
447
|
-
|
|
435
|
+
aspec archive "<name>"
|
|
448
436
|
```
|
|
449
437
|
|
|
450
438
|
**SHOW:**
|
|
451
439
|
|
|
452
440
|
```
|
|
453
|
-
Archived to: `
|
|
441
|
+
Archived to: `aspec/changes/archive/YYYY-MM-DD-<name>/`
|
|
454
442
|
|
|
455
443
|
The change is now part of your project's history. The code is in your codebase, the decision record is preserved.
|
|
456
444
|
```
|
|
@@ -462,7 +450,7 @@ The change is now part of your project's history. The code is in your codebase,
|
|
|
462
450
|
```
|
|
463
451
|
## Congratulations!
|
|
464
452
|
|
|
465
|
-
You just completed a full
|
|
453
|
+
You just completed a full aspec cycle:
|
|
466
454
|
|
|
467
455
|
1. **Explore** - Thought through the problem
|
|
468
456
|
2. **New** - Created a change container
|
|
@@ -483,25 +471,25 @@ This same rhythm works for any size change—a small fix or a major feature.
|
|
|
483
471
|
|
|
484
472
|
| Command | What it does |
|
|
485
473
|
|---------|--------------|
|
|
486
|
-
| `/
|
|
487
|
-
| `/
|
|
488
|
-
| `/
|
|
489
|
-
| `/
|
|
474
|
+
| `/cleto-propose` | Create a change and generate all artifacts |
|
|
475
|
+
| `/cleto-explore` | Think through problems before/during work |
|
|
476
|
+
| `/cleto-apply` | Implement tasks from a change |
|
|
477
|
+
| `/cleto-archive` | Archive a completed change |
|
|
490
478
|
|
|
491
479
|
**Additional commands:**
|
|
492
480
|
|
|
493
481
|
| Command | What it does |
|
|
494
482
|
|---------|--------------|
|
|
495
|
-
| `/
|
|
496
|
-
| `/
|
|
497
|
-
| `/
|
|
498
|
-
| `/
|
|
483
|
+
| `/cleto-new` | Start a new change, step through artifacts one at a time |
|
|
484
|
+
| `/cleto-continue` | Continue working on an existing change |
|
|
485
|
+
| `/cleto-ff` | Fast-forward: create all artifacts at once |
|
|
486
|
+
| `/cleto-verify` | Verify implementation matches artifacts |
|
|
499
487
|
|
|
500
488
|
---
|
|
501
489
|
|
|
502
490
|
## What's Next?
|
|
503
491
|
|
|
504
|
-
Try `/
|
|
492
|
+
Try `/cleto-propose` on something you actually want to build. You've got the rhythm now!
|
|
505
493
|
```
|
|
506
494
|
|
|
507
495
|
---
|
|
@@ -513,11 +501,11 @@ Try `/opsx-propose` on something you actually want to build. You've got the rhyt
|
|
|
513
501
|
If the user says they need to stop, want to pause, or seem disengaged:
|
|
514
502
|
|
|
515
503
|
```
|
|
516
|
-
No problem! Your change is saved at `
|
|
504
|
+
No problem! Your change is saved at `aspec/changes/<name>/`.
|
|
517
505
|
|
|
518
506
|
To pick up where we left off later:
|
|
519
|
-
- `/
|
|
520
|
-
- `/
|
|
507
|
+
- `/cleto-continue <name>` - Resume artifact creation
|
|
508
|
+
- `/cleto-apply <name>` - Jump to implementation (if tasks exist)
|
|
521
509
|
|
|
522
510
|
The work won't be lost. Come back whenever you're ready.
|
|
523
511
|
```
|
|
@@ -529,27 +517,27 @@ Exit gracefully without pressure.
|
|
|
529
517
|
If the user says they just want to see the commands or skip the tutorial:
|
|
530
518
|
|
|
531
519
|
```
|
|
532
|
-
##
|
|
520
|
+
## aspec Quick Reference
|
|
533
521
|
|
|
534
522
|
**Core workflow:**
|
|
535
523
|
|
|
536
524
|
| Command | What it does |
|
|
537
525
|
|---------|--------------|
|
|
538
|
-
| `/
|
|
539
|
-
| `/
|
|
540
|
-
| `/
|
|
541
|
-
| `/
|
|
526
|
+
| `/cleto-propose <name>` | Create a change and generate all artifacts |
|
|
527
|
+
| `/cleto-explore` | Think through problems (no code changes) |
|
|
528
|
+
| `/cleto-apply <name>` | Implement tasks |
|
|
529
|
+
| `/cleto-archive <name>` | Archive when done |
|
|
542
530
|
|
|
543
531
|
**Additional commands:**
|
|
544
532
|
|
|
545
533
|
| Command | What it does |
|
|
546
534
|
|---------|--------------|
|
|
547
|
-
| `/
|
|
548
|
-
| `/
|
|
549
|
-
| `/
|
|
550
|
-
| `/
|
|
535
|
+
| `/cleto-new <name>` | Start a new change, step by step |
|
|
536
|
+
| `/cleto-continue <name>` | Continue an existing change |
|
|
537
|
+
| `/cleto-ff <name>` | Fast-forward: all artifacts at once |
|
|
538
|
+
| `/cleto-verify <name>` | Verify implementation |
|
|
551
539
|
|
|
552
|
-
Try `/
|
|
540
|
+
Try `/cleto-propose` to start your first change.
|
|
553
541
|
```
|
|
554
542
|
|
|
555
543
|
Exit gracefully.
|
|
@@ -10,11 +10,11 @@ I'll create a change with artifacts:
|
|
|
10
10
|
- design.md (how)
|
|
11
11
|
- tasks.md (implementation steps)
|
|
12
12
|
|
|
13
|
-
When ready to implement, run /
|
|
13
|
+
When ready to implement, run /cleto-apply
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
-
**Input**: The argument after `/
|
|
17
|
+
**Input**: The argument after `/cleto-propose` is the change name (kebab-case), OR a description of what the user wants to build.
|
|
18
18
|
|
|
19
19
|
**Steps**
|
|
20
20
|
|
|
@@ -23,7 +23,7 @@ When ready to implement, run /opsx-apply
|
|
|
23
23
|
Resolve Work Item context in this order — stop at the first source that yields data:
|
|
24
24
|
|
|
25
25
|
a. **In-session context** — If WI data was already fetched in this session, use it. Proceed to name derivation below.
|
|
26
|
-
b. **`context.md`** — If a change name was provided as argument and `
|
|
26
|
+
b. **`context.md`** — If a change name was provided as argument and `aspec/changes/<name>/context.md` exists, read it and use its content. Proceed to name derivation.
|
|
27
27
|
c. **Ask the user** — Use the **AskUserQuestion tool** to ask for the Work Item reference. Two accepted formats:
|
|
28
28
|
|
|
29
29
|
- **ID + Project** — e.g., ID `12345` and project `MyProject`
|
|
@@ -52,16 +52,14 @@ When ready to implement, run /opsx-apply
|
|
|
52
52
|
|
|
53
53
|
2. **Create the change directory**
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
openspec new change "<name>"
|
|
57
|
-
```
|
|
55
|
+
Create the directory `aspec/changes/<name>/` in the repository.
|
|
58
56
|
|
|
59
|
-
This
|
|
57
|
+
This scaffolds the change at `aspec/changes/<name>/` with `.aspec.yaml`.
|
|
60
58
|
|
|
61
59
|
3. **Get the artifact build order**
|
|
62
60
|
|
|
63
61
|
```bash
|
|
64
|
-
|
|
62
|
+
aspec status --change "<name>" --json
|
|
65
63
|
```
|
|
66
64
|
|
|
67
65
|
Parse the JSON to get:
|
|
@@ -79,7 +77,7 @@ When ready to implement, run /opsx-apply
|
|
|
79
77
|
|
|
80
78
|
- Get instructions:
|
|
81
79
|
```bash
|
|
82
|
-
|
|
80
|
+
aspec instructions <artifact-id> --change "<name>" --json
|
|
83
81
|
```
|
|
84
82
|
- The instructions JSON includes:
|
|
85
83
|
- `context`: Project background (constraints for you - do NOT include in output)
|
|
@@ -97,7 +95,7 @@ When ready to implement, run /opsx-apply
|
|
|
97
95
|
|
|
98
96
|
b. **Continue until all `applyRequires` artifacts are complete**
|
|
99
97
|
|
|
100
|
-
- After creating each artifact, re-run `
|
|
98
|
+
- After creating each artifact, re-run `aspec status --change "<name>" --json`
|
|
101
99
|
- Check if every artifact ID in `applyRequires` has `status: "done"` in the artifacts array
|
|
102
100
|
- Stop when all `applyRequires` artifacts are done
|
|
103
101
|
|
|
@@ -108,7 +106,7 @@ When ready to implement, run /opsx-apply
|
|
|
108
106
|
|
|
109
107
|
5. **Show final status**
|
|
110
108
|
```bash
|
|
111
|
-
|
|
109
|
+
aspec status --change "<name>"
|
|
112
110
|
```
|
|
113
111
|
|
|
114
112
|
**Output**
|
|
@@ -118,11 +116,11 @@ After completing all artifacts, summarize:
|
|
|
118
116
|
- Change name and location
|
|
119
117
|
- List of artifacts created with brief descriptions
|
|
120
118
|
- What's ready: "All artifacts created! Ready for implementation."
|
|
121
|
-
- Prompt: "Run `/
|
|
119
|
+
- Prompt: "Run `/cleto-apply` to start implementing."
|
|
122
120
|
|
|
123
121
|
**Artifact Creation Guidelines**
|
|
124
122
|
|
|
125
|
-
- Follow the `instruction` field from `
|
|
123
|
+
- Follow the `instruction` field from `aspec instructions` for each artifact type
|
|
126
124
|
- The schema defines what each artifact should contain - follow it
|
|
127
125
|
- Read dependency artifacts for context before creating new ones
|
|
128
126
|
- Use `template` as the structure for your output file - fill in its sections
|
|
@@ -4,13 +4,13 @@ description: Recuperar memoria episódica del proyecto (.ancleto/memory.db) sobr
|
|
|
4
4
|
|
|
5
5
|
Recuperar de la memoria compartida del repositorio lo que se aprendió en changes anteriores sobre un tema.
|
|
6
6
|
|
|
7
|
-
Este comando es la invocación **a mano** de la memoria. La invocación automática vive dentro de `/
|
|
7
|
+
Este comando es la invocación **a mano** de la memoria. La invocación automática vive dentro de `/cleto-new`, `/cleto-propose` y `/cleto-ff`, que ejecutan el mismo paso al iniciar un change. El contrato completo está en la skill `ancleto-recall`.
|
|
8
8
|
|
|
9
|
-
**Input**: el argumento después de `/
|
|
9
|
+
**Input**: el argumento después de `/cleto-recall` es el tema a consultar. Por ejemplo:
|
|
10
10
|
|
|
11
|
-
- `/
|
|
12
|
-
- `/
|
|
13
|
-
- `/
|
|
11
|
+
- `/cleto-recall autenticación JWT en LiteLLM`
|
|
12
|
+
- `/cleto-recall por qué elegimos pgvector`
|
|
13
|
+
- `/cleto-recall` (sin argumento — ver paso 1)
|
|
14
14
|
|
|
15
15
|
**Steps**
|
|
16
16
|
|
|
@@ -53,5 +53,5 @@ Este comando es la invocación **a mano** de la memoria. La invocación automát
|
|
|
53
53
|
|
|
54
54
|
**Referencia**
|
|
55
55
|
|
|
56
|
-
- Contrato completo: skill `
|
|
56
|
+
- Contrato completo: skill `ancleto-recall`
|
|
57
57
|
- Contrato de lectura y modelo de scope: `AGENTS.md` (Memoria Persistente)
|
|
@@ -6,13 +6,13 @@ Sync delta specs from a change to main specs.
|
|
|
6
6
|
|
|
7
7
|
This is an **agent-driven** operation - you will read delta specs and directly edit main specs to apply the changes. This allows intelligent merging (e.g., adding a scenario without copying the entire requirement).
|
|
8
8
|
|
|
9
|
-
**Input**: Optionally specify a change name after `/
|
|
9
|
+
**Input**: Optionally specify a change name after `/cleto-sync` (e.g., `/cleto-sync add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
|
|
10
10
|
|
|
11
11
|
**Steps**
|
|
12
12
|
|
|
13
13
|
1. **If no change name provided, prompt for selection**
|
|
14
14
|
|
|
15
|
-
Run `
|
|
15
|
+
Run `aspec list --json` to get available changes. Use the **AskUserQuestion tool** to let the user select.
|
|
16
16
|
|
|
17
17
|
Show changes that have delta specs (under `specs/` directory).
|
|
18
18
|
|
|
@@ -20,7 +20,7 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
20
20
|
|
|
21
21
|
2. **Find delta specs**
|
|
22
22
|
|
|
23
|
-
Look for delta spec files in `
|
|
23
|
+
Look for delta spec files in `aspec/changes/<name>/specs/*/spec.md`.
|
|
24
24
|
|
|
25
25
|
Each delta spec file contains sections like:
|
|
26
26
|
|
|
@@ -33,11 +33,11 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
33
33
|
|
|
34
34
|
3. **For each delta spec, apply changes to main specs**
|
|
35
35
|
|
|
36
|
-
For each capability with a delta spec at `
|
|
36
|
+
For each capability with a delta spec at `aspec/changes/<name>/specs/<capability>/spec.md`:
|
|
37
37
|
|
|
38
38
|
a. **Read the delta spec** to understand the intended changes
|
|
39
39
|
|
|
40
|
-
b. **Read the main spec** at `
|
|
40
|
+
b. **Read the main spec** at `aspec/specs/<capability>/spec.md` (may not exist yet)
|
|
41
41
|
|
|
42
42
|
c. **Apply changes intelligently**:
|
|
43
43
|
|
|
@@ -65,7 +65,7 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
65
65
|
|
|
66
66
|
d. **Create new main spec** if capability doesn't exist yet:
|
|
67
67
|
|
|
68
|
-
- Create `
|
|
68
|
+
- Create `aspec/specs/<capability>/spec.md`
|
|
69
69
|
- Add Purpose section (can be brief, mark as TBD)
|
|
70
70
|
- Add Requirements section with the ADDED requirements
|
|
71
71
|
|
|
@@ -4,13 +4,13 @@ description: Verify implementation matches change artifacts before archiving
|
|
|
4
4
|
|
|
5
5
|
Verify that an implementation matches the change artifacts (specs, tasks, design).
|
|
6
6
|
|
|
7
|
-
**Input**: Optionally specify a change name after `/
|
|
7
|
+
**Input**: Optionally specify a change name after `/cleto-verify` (e.g., `/cleto-verify add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
|
|
8
8
|
|
|
9
9
|
**Steps**
|
|
10
10
|
|
|
11
11
|
1. **If no change name provided, prompt for selection**
|
|
12
12
|
|
|
13
|
-
Run `
|
|
13
|
+
Run `aspec list --json` to get available changes. Use the **AskUserQuestion tool** to let the user select.
|
|
14
14
|
|
|
15
15
|
Show changes that have implementation tasks (tasks artifact exists).
|
|
16
16
|
Include the schema used for each change if available.
|
|
@@ -21,7 +21,7 @@ Verify that an implementation matches the change artifacts (specs, tasks, design
|
|
|
21
21
|
2. **Check status to understand the schema**
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
|
|
24
|
+
aspec status --change "<name>" --json
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
Parse the JSON to understand:
|
|
@@ -32,7 +32,7 @@ Verify that an implementation matches the change artifacts (specs, tasks, design
|
|
|
32
32
|
3. **Get the change directory and load artifacts**
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
|
|
35
|
+
aspec instructions apply --change "<name>" --json
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
This returns the change directory and `contextFiles` (artifact ID -> array of concrete file paths). Read all available artifacts from `contextFiles`.
|
|
@@ -60,7 +60,7 @@ Verify that an implementation matches the change artifacts (specs, tasks, design
|
|
|
60
60
|
|
|
61
61
|
**Spec Coverage**:
|
|
62
62
|
|
|
63
|
-
- If delta specs exist in `
|
|
63
|
+
- If delta specs exist in `aspec/changes/<name>/specs/`:
|
|
64
64
|
- Extract all requirements (marked with "### Requirement:")
|
|
65
65
|
- For each requirement:
|
|
66
66
|
- Search codebase for keywords related to the requirement
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ancleto/spec",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
4
|
"description": "Orquestador SDD liviano con subagentes optimizados para costo/tokens",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"keywords": [
|
|
33
33
|
"opencode",
|
|
34
|
-
"
|
|
34
|
+
"aspec",
|
|
35
35
|
"sdd",
|
|
36
36
|
"ai",
|
|
37
37
|
"agents",
|