create-quiver 0.14.1 → 0.15.1
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 +22 -0
- package/README.md +35 -0
- package/README_FOR_AI.md +15 -4
- package/ROADMAP.md +13 -2
- package/docs/AI_CONTEXT.md.template +4 -0
- package/docs/AI_ONBOARDING_PROMPT.md.template +8 -0
- package/docs/CLI_UX_GUIDE.md +79 -4
- package/docs/COMMANDS.md.template +21 -5
- package/docs/TROUBLESHOOTING.md +70 -0
- package/docs/TROUBLESHOOTING.md.template +20 -0
- package/docs/getting-started/installation.md +86 -0
- package/docs/reference/commands.md +33 -1
- package/package.json +1 -1
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/EVIDENCE_REPORT.md +213 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/EXECUTION_PLAN.md +85 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/SPEC.md +213 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/STATUS.md +31 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/pr.md +103 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-00-spec-foundation/slice.json +71 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-01-cli-ux-runtime-progress-engine/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-01-cli-ux-runtime-progress-engine/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-01-cli-ux-runtime-progress-engine/slice.json +69 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-02-agent-profile-selection-selectors/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-02-agent-profile-selection-selectors/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-02-agent-profile-selection-selectors/slice.json +81 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-03-provider-model-selection-contract/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-03-provider-model-selection-contract/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-03-provider-model-selection-contract/slice.json +75 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-04-planner-ia-progress-flows/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-04-planner-ia-progress-flows/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-04-planner-ia-progress-flows/slice.json +85 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-05-executor-pr-progress-flows/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-05-executor-pr-progress-flows/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-05-executor-pr-progress-flows/slice.json +85 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-06-doctor-visual-json-contract/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-06-doctor-visual-json-contract/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-06-doctor-visual-json-contract/slice.json +81 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-07-interactive-init-spec-create/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-07-interactive-init-spec-create/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-07-interactive-init-spec-create/slice.json +85 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-08-tests-docs-cross-platform-release/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-08-tests-docs-cross-platform-release/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-08-tests-docs-cross-platform-release/slice.json +95 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/EVIDENCE_REPORT.md +185 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/EXECUTION_PLAN.md +85 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/SPEC.md +337 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/STATUS.md +30 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/pr.md +98 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-00-spec-foundation/slice.json +62 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-01-model-catalog-alias-normalization/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-01-model-catalog-alias-normalization/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-01-model-catalog-alias-normalization/slice.json +72 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-02-interactive-agent-set-selectors/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-02-interactive-agent-set-selectors/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-02-interactive-agent-set-selectors/slice.json +78 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-03-agent-doctor-repair/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-03-agent-doctor-repair/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-03-agent-doctor-repair/slice.json +77 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-04-shared-preflight-provider-errors/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-04-shared-preflight-provider-errors/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-04-shared-preflight-provider-errors/slice.json +84 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-05-ai-models-list/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-05-ai-models-list/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-05-ai-models-list/slice.json +72 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-06-docs-templates-alignment/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-06-docs-templates-alignment/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-06-docs-templates-alignment/slice.json +84 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-07-tests-smokes-release-readiness/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-07-tests-smokes-release-readiness/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-07-tests-smokes-release-readiness/slice.json +94 -0
- package/specs/quiver-v32-npx-installation-guidance/EVIDENCE_REPORT.md +26 -0
- package/specs/quiver-v32-npx-installation-guidance/SPEC.md +55 -0
- package/specs/quiver-v32-npx-installation-guidance/STATUS.md +23 -0
- package/specs/quiver-v32-npx-installation-guidance/pr.md +72 -0
- package/specs/quiver-v32-npx-installation-guidance/slices/slice-00-installation-docs/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v32-npx-installation-guidance/slices/slice-00-installation-docs/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v32-npx-installation-guidance/slices/slice-00-installation-docs/slice.json +75 -0
- package/src/create-quiver/commands/ai.js +797 -99
- package/src/create-quiver/commands/flow.js +2 -2
- package/src/create-quiver/commands/spec.js +106 -6
- package/src/create-quiver/index.js +557 -78
- package/src/create-quiver/lib/agent-profiles.js +440 -11
- package/src/create-quiver/lib/ai/execution-plan.js +111 -8
- package/src/create-quiver/lib/ai/executor.js +291 -28
- package/src/create-quiver/lib/ai/model-catalog.js +333 -0
- package/src/create-quiver/lib/ai/providers.js +211 -2
- package/src/create-quiver/lib/cli/selectors.js +160 -0
- package/src/create-quiver/lib/cli/theme.js +5 -2
- package/src/create-quiver/lib/cli/ux-flags.js +18 -0
- package/src/create-quiver/lib/cli/ux.js +100 -5
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Evidence Report - Quiver v31 AI Model Catalog and Agent Selection
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
This report starts with documentation-only evidence for `slice-00`. Product implementation evidence must be appended by each later slice.
|
|
6
|
+
|
|
7
|
+
## slice-00 - Spec foundation
|
|
8
|
+
|
|
9
|
+
### Completed
|
|
10
|
+
|
|
11
|
+
- Created v31 spec package with `SPEC.md`, `STATUS.md`, `EXECUTION_PLAN.md`, `EVIDENCE_REPORT.md`, and `pr.md`.
|
|
12
|
+
- Created 8 slice folders with `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
|
|
13
|
+
- Synchronized `README_FOR_AI.md` and `ROADMAP.md` to mark v31 as planned work.
|
|
14
|
+
|
|
15
|
+
### Validation
|
|
16
|
+
|
|
17
|
+
- `find specs/quiver-v31-ai-model-catalog-agent-selection -name 'slice.json' -print -exec node -e "JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8')); console.log('ok', process.argv[1])" {} \;` passed for 8 slice files.
|
|
18
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v31-ai-model-catalog-agent-selection` passed and reported 8 slices.
|
|
19
|
+
- `git diff --check` passed.
|
|
20
|
+
|
|
21
|
+
### Risks Observed During Validation
|
|
22
|
+
|
|
23
|
+
- The repo is currently ahead of `origin/main` by the local `v0.15.0` release commit from the prior npm publication attempt. This slice does not modify or resolve that release state.
|
|
24
|
+
|
|
25
|
+
## Later Slices
|
|
26
|
+
|
|
27
|
+
Each implementation slice must append:
|
|
28
|
+
|
|
29
|
+
- commands executed;
|
|
30
|
+
- tests or smokes run;
|
|
31
|
+
- files changed;
|
|
32
|
+
- validation result;
|
|
33
|
+
- human and JSON output evidence when applicable;
|
|
34
|
+
- remaining risks;
|
|
35
|
+
- evidence location.
|
|
36
|
+
|
|
37
|
+
## slice-01 - Local model catalog and alias normalization
|
|
38
|
+
|
|
39
|
+
### Completed
|
|
40
|
+
|
|
41
|
+
- Added `src/create-quiver/lib/ai/model-catalog.js` as the local, versioned model catalog source of truth.
|
|
42
|
+
- Added Codex, Claude, and Gemini known model entries with aliases, role recommendations, cost/quality/stability metadata, and custom model support.
|
|
43
|
+
- Added tolerant alias normalization for case, spaces, dashes, and punctuation.
|
|
44
|
+
- Updated agent profile creation to normalize known visual aliases into technical model ids while preserving human `displayName`.
|
|
45
|
+
- Preserved free-form custom model support and added optional profile metadata: `modelSource`, `modelAlias`, `validation_status`, `validated_at`, and `validation_error`.
|
|
46
|
+
|
|
47
|
+
### Validation
|
|
48
|
+
|
|
49
|
+
- `node --test tests/lib/model-catalog.test.js tests/lib/agent-profiles.test.js` passed: 10 tests.
|
|
50
|
+
- `git diff --check` passed.
|
|
51
|
+
|
|
52
|
+
### Risks
|
|
53
|
+
|
|
54
|
+
- Catalog entries are local and can become stale. Later docs must keep the wording "known by Quiver" and avoid implying account-level availability.
|
|
55
|
+
- Live provider validation and command preflight are intentionally deferred to later slices.
|
|
56
|
+
|
|
57
|
+
## slice-02 - Interactive agent set provider and model selectors
|
|
58
|
+
|
|
59
|
+
### Completed
|
|
60
|
+
|
|
61
|
+
- Added interactive provider/model resolution for `ai agent set <role>`.
|
|
62
|
+
- Added no-TTY/CI safeguards requiring explicit `--provider` and `--model`.
|
|
63
|
+
- Added existing profile actions: update current, create new, change default, and cancel before writes.
|
|
64
|
+
- Added provider CLI status hints in provider choices.
|
|
65
|
+
- Added role-ordered model choices from the local catalog.
|
|
66
|
+
- Added custom model id and display-name capture.
|
|
67
|
+
- Added a write summary before saving profiles selected through prompts.
|
|
68
|
+
- Made `ai agent` dispatch async-safe.
|
|
69
|
+
|
|
70
|
+
### Validation
|
|
71
|
+
|
|
72
|
+
- `node --test tests/commands/ai-agent.test.js tests/lib/cli-selectors.test.js tests/lib/model-catalog.test.js tests/lib/agent-profiles.test.js` passed: 30 tests.
|
|
73
|
+
|
|
74
|
+
### Risks
|
|
75
|
+
|
|
76
|
+
- Provider status is best-effort CLI detection and does not guarantee account-level model availability.
|
|
77
|
+
- Interactive rendering is validated through injectable prompt helpers; real terminal behavior should be covered by smoke testing in the final slice.
|
|
78
|
+
|
|
79
|
+
## slice-03 - Agent profile doctor and repair dry-run
|
|
80
|
+
|
|
81
|
+
### Completed
|
|
82
|
+
|
|
83
|
+
- Added pure profile diagnostics that evaluate every configured agent profile.
|
|
84
|
+
- Added `ai agent doctor` with human output sections `Checks` and `Suggested fixes`.
|
|
85
|
+
- Added `ai agent doctor --json` with parseable JSON output and no human prose.
|
|
86
|
+
- Added exit code 1 when doctor errors are present.
|
|
87
|
+
- Added `ai agent repair --dry-run` with before/after changes and no writes.
|
|
88
|
+
- Added safe catalog-alias repair for legacy profiles such as `model: "GPT 5.5"`.
|
|
89
|
+
- Added warnings for custom unvalidated models and provider CLI checks.
|
|
90
|
+
- Updated CLI help for `ai agent doctor` and `ai agent repair`.
|
|
91
|
+
|
|
92
|
+
### Validation
|
|
93
|
+
|
|
94
|
+
- `node --test tests/commands/ai-agent.test.js tests/lib/agent-profiles.test.js tests/lib/model-catalog.test.js tests/lib/cli-selectors.test.js` passed: 36 tests.
|
|
95
|
+
|
|
96
|
+
### Risks
|
|
97
|
+
|
|
98
|
+
- Provider CLI checks are best-effort and do not prove selected model entitlement.
|
|
99
|
+
- Repair write mode is intentionally unavailable until dry-run behavior is dogfooded.
|
|
100
|
+
|
|
101
|
+
## slice-04 - Shared model preflight and provider error extraction
|
|
102
|
+
|
|
103
|
+
### Completed
|
|
104
|
+
|
|
105
|
+
- Added shared provider model alias resolution.
|
|
106
|
+
- Added blocking policy for display aliases read from persisted profiles.
|
|
107
|
+
- Added normalization for CLI `--model` display aliases in dry-run and invocation output.
|
|
108
|
+
- Added provider error cause extraction for invalid model, auth, missing CLI, timeout, and generic failures.
|
|
109
|
+
- Added provider failure serialization for non-zero exits where stderr contains the useful cause.
|
|
110
|
+
- Applied model preflight options to planner, reviewer, repair-plan, execute-slice, and execute-plan runtime paths.
|
|
111
|
+
- Added tests for `GPT 5.5` CLI override normalization, legacy profile blocking before provider execution, invalid model priority over MCP noise, and secret redaction.
|
|
112
|
+
|
|
113
|
+
### Validation
|
|
114
|
+
|
|
115
|
+
- `node --test tests/lib/ai-providers.test.js tests/commands/ai-prepare-context-planner.test.js tests/commands/ai-execute-slice.test.js` passed: 35 tests.
|
|
116
|
+
- `node --test tests/lib/ai-providers.test.js tests/commands/ai-prepare-context-planner.test.js tests/commands/ai-plan.test.js tests/commands/ai-review-plan.test.js tests/commands/ai-execute-slice.test.js tests/commands/ai-execute-plan.test.js` passed: 78 tests.
|
|
117
|
+
|
|
118
|
+
### Risks
|
|
119
|
+
|
|
120
|
+
- Provider stderr patterns can change; future observed failures should become fixtures.
|
|
121
|
+
- Custom models remain allowed and can only be proven through live provider validation.
|
|
122
|
+
|
|
123
|
+
## slice-05 - AI models list command
|
|
124
|
+
|
|
125
|
+
### Completed
|
|
126
|
+
|
|
127
|
+
- Added `ai models list`.
|
|
128
|
+
- Added `--provider <id>` filtering for catalog providers.
|
|
129
|
+
- Added `--json` clean machine output with `catalogVersion` and `lastUpdated`.
|
|
130
|
+
- Updated CLI help and contract tests.
|
|
131
|
+
- Added human output wording that says models are known by Quiver and avoids claiming availability.
|
|
132
|
+
|
|
133
|
+
### Validation
|
|
134
|
+
|
|
135
|
+
- `node --test tests/commands/ai-models.test.js tests/commands/cli-contract.test.js` passed: 11 tests.
|
|
136
|
+
|
|
137
|
+
### Risks
|
|
138
|
+
|
|
139
|
+
- The model catalog is local and can become stale until Quiver has a remote/update mechanism.
|
|
140
|
+
|
|
141
|
+
## slice-06 - Documentation and generated template alignment
|
|
142
|
+
|
|
143
|
+
### Completed
|
|
144
|
+
|
|
145
|
+
- Updated `README.md` with concise public-facing model catalog, agent setup, doctor, and repair commands.
|
|
146
|
+
- Updated `docs/reference/commands.md` with interactive and script-safe agent setup, `ai models list`, `ai agent doctor`, and `ai agent repair --dry-run`.
|
|
147
|
+
- Updated `docs/CLI_UX_GUIDE.md` with the profile data contract: `model` is the provider technical id and `displayName` is the human label.
|
|
148
|
+
- Updated generated project templates: `docs/COMMANDS.md.template`, `docs/AI_ONBOARDING_PROMPT.md.template`, and `docs/AI_CONTEXT.md.template`.
|
|
149
|
+
- Updated `README_FOR_AI.md`, `ROADMAP.md`, `STATUS.md`, and the slice closure to reflect completed docs/templates alignment without claiming package publication.
|
|
150
|
+
|
|
151
|
+
### Validation
|
|
152
|
+
|
|
153
|
+
- `node bin/create-quiver.js --help` passed and exposed `ai models list`, `ai agent doctor`, and `ai agent repair --dry-run`.
|
|
154
|
+
- `node bin/create-quiver.js ai models list --provider codex` passed and printed "Models are known by Quiver; provider account access is not guaranteed."
|
|
155
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v31-ai-model-catalog-agent-selection` passed with a warning before this evidence section was appended.
|
|
156
|
+
- `git diff --check` passed.
|
|
157
|
+
|
|
158
|
+
### Risks
|
|
159
|
+
|
|
160
|
+
- The final release-readiness slice must verify the CLI help contract after docs alignment.
|
|
161
|
+
- The local model catalog can become stale until Quiver has a remote/update mechanism.
|
|
162
|
+
|
|
163
|
+
## slice-07 - Tests, smokes, package dry-run, and release readiness
|
|
164
|
+
|
|
165
|
+
### Completed
|
|
166
|
+
|
|
167
|
+
- Corrected remaining CLI help/flow guidance so `--model` is documented as a technical model id, not a free-form label.
|
|
168
|
+
- Updated contract tests and `smoke:create-quiver` packaged-help assertions for `ai agent doctor`, `ai agent repair --dry-run`, `ai models list`, and `--model <model-id>`.
|
|
169
|
+
- Updated release docs: `CHANGELOG.md`, `README_FOR_AI.md`, `ROADMAP.md`, `STATUS.md`, `pr.md`, and this evidence report.
|
|
170
|
+
|
|
171
|
+
### Validation
|
|
172
|
+
|
|
173
|
+
- `node --test tests/commands/cli-contract.test.js tests/commands/flow.test.js tests/commands/ai-agent.test.js tests/lib/agent-profiles.test.js` passed: 44 tests.
|
|
174
|
+
- `node --test tests/**/*.test.js` passed: 482 tests.
|
|
175
|
+
- `npm run smoke:doctor-fixtures` passed: 13 fixture states.
|
|
176
|
+
- `npm run smoke:create-quiver` passed after updating packaged-help expectations.
|
|
177
|
+
- `npm run smoke:guided-workflow` passed.
|
|
178
|
+
- `npm run package:quiver` passed with package smoke.
|
|
179
|
+
- `npm pack --dry-run` passed and generated dry-run tarball details for `create-quiver@0.15.0`.
|
|
180
|
+
|
|
181
|
+
### Risks
|
|
182
|
+
|
|
183
|
+
- npm publication was not performed and still requires explicit human approval.
|
|
184
|
+
- Live provider model entitlement was not tested because it depends on provider CLI/account access and may consume tokens.
|
|
185
|
+
- The local model catalog remains manually maintained until Quiver has a remote/update mechanism.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Execution Plan - Quiver v31 AI Model Catalog and Agent Selection
|
|
2
|
+
|
|
3
|
+
## Execution Order
|
|
4
|
+
|
|
5
|
+
```mermaid
|
|
6
|
+
flowchart TD
|
|
7
|
+
S00[slice-00: Spec foundation]
|
|
8
|
+
S01[slice-01: Model catalog and alias normalization]
|
|
9
|
+
S02[slice-02: Interactive agent set selectors]
|
|
10
|
+
S03[slice-03: Agent doctor and repair dry-run]
|
|
11
|
+
S04[slice-04: Shared preflight and provider errors]
|
|
12
|
+
S05[slice-05: AI models list]
|
|
13
|
+
S06[slice-06: Docs and templates alignment]
|
|
14
|
+
S07[slice-07: Tests, smokes, and release readiness]
|
|
15
|
+
|
|
16
|
+
S00 --> S01
|
|
17
|
+
S01 --> S02
|
|
18
|
+
S01 --> S03
|
|
19
|
+
S01 --> S04
|
|
20
|
+
S01 --> S05
|
|
21
|
+
S02 --> S03
|
|
22
|
+
S03 --> S04
|
|
23
|
+
S04 --> S06
|
|
24
|
+
S05 --> S06
|
|
25
|
+
S06 --> S07
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Waves
|
|
29
|
+
|
|
30
|
+
### Wave 0 - Sequential
|
|
31
|
+
|
|
32
|
+
1. `slice-00-spec-foundation`
|
|
33
|
+
|
|
34
|
+
This slice must run first. It commits the approved spec, every slice, handoffs, execution plan, PR body, and source-of-truth documentation sync.
|
|
35
|
+
|
|
36
|
+
### Wave 1 - Sequential Core
|
|
37
|
+
|
|
38
|
+
1. `slice-01-model-catalog-alias-normalization`
|
|
39
|
+
|
|
40
|
+
The catalog and model-resolution contract must exist before selectors, doctor, repair, or live command preflight can use it.
|
|
41
|
+
|
|
42
|
+
### Wave 2 - Parallel after slice-01
|
|
43
|
+
|
|
44
|
+
- `slice-02-interactive-agent-set-selectors`
|
|
45
|
+
- `slice-05-ai-models-list`
|
|
46
|
+
|
|
47
|
+
These can run in parallel if their write scopes stay separated.
|
|
48
|
+
|
|
49
|
+
### Wave 3 - Sequential Diagnostics and Runtime
|
|
50
|
+
|
|
51
|
+
1. `slice-03-agent-doctor-repair`
|
|
52
|
+
2. `slice-04-shared-preflight-provider-errors`
|
|
53
|
+
|
|
54
|
+
Doctor/repair should land before command preflight so existing-profile diagnostics and preflight reuse the same issue classification.
|
|
55
|
+
|
|
56
|
+
### Wave 4 - Sequential Docs
|
|
57
|
+
|
|
58
|
+
1. `slice-06-docs-templates-alignment`
|
|
59
|
+
|
|
60
|
+
Docs depend on the final command names and output contracts.
|
|
61
|
+
|
|
62
|
+
### Wave 5 - Sequential Close
|
|
63
|
+
|
|
64
|
+
1. `slice-07-tests-smokes-release-readiness`
|
|
65
|
+
|
|
66
|
+
Final validation is never parallel-safe.
|
|
67
|
+
|
|
68
|
+
## Parallel Safety Notes
|
|
69
|
+
|
|
70
|
+
- Do not run any implementation slice before `slice-00`.
|
|
71
|
+
- Do not implement selectors before catalog helpers exist.
|
|
72
|
+
- Do not add live command preflight before doctor/repair issue classification is stable.
|
|
73
|
+
- `slice-02` and `slice-05` may both touch `commands/ai.js`; if conflicts are likely, run `slice-02` first.
|
|
74
|
+
- `slice-07` must close the spec after all other slices.
|
|
75
|
+
|
|
76
|
+
## Recommended Commit Order
|
|
77
|
+
|
|
78
|
+
1. `docs: add v31 ai model catalog spec`
|
|
79
|
+
2. `feat: add ai model catalog normalization`
|
|
80
|
+
3. `feat: add interactive agent model selectors`
|
|
81
|
+
4. `feat: add agent profile doctor repair`
|
|
82
|
+
5. `feat: add ai model preflight errors`
|
|
83
|
+
6. `feat: add ai models list`
|
|
84
|
+
7. `docs: document ai model catalog setup`
|
|
85
|
+
8. `docs: close v31 model catalog release readiness`
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
# Spec - Quiver v31 AI Model Catalog and Agent Selection
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
|
|
5
|
+
Make AI agent configuration safer and easier by letting users select providers and known models from Quiver-guided choices instead of memorizing provider-specific model ids.
|
|
6
|
+
|
|
7
|
+
The immediate trigger is a real dogfooding failure: a project stored `model: "GPT 5.5"` for a Codex planner, but Codex requires the technical id `gpt-5.5`. Quiver showed `provider run failed` instead of explaining that the saved model looked like a display name.
|
|
8
|
+
|
|
9
|
+
## Problem
|
|
10
|
+
|
|
11
|
+
Quiver currently stores free-form `model` values in agent profiles. That is flexible, but it lets users accidentally save a human-friendly model name where the provider CLI expects an exact technical id.
|
|
12
|
+
|
|
13
|
+
This causes:
|
|
14
|
+
|
|
15
|
+
- live AI commands to fail late;
|
|
16
|
+
- unclear `provider run failed` errors;
|
|
17
|
+
- repeated trial and error;
|
|
18
|
+
- poor first-run experience for Planner, Executor, Reviewer, and Doctor setup;
|
|
19
|
+
- fragile profile reuse across projects.
|
|
20
|
+
|
|
21
|
+
## Product Requirements
|
|
22
|
+
|
|
23
|
+
### Known Providers
|
|
24
|
+
|
|
25
|
+
The first iteration supports only providers already implemented by Quiver:
|
|
26
|
+
|
|
27
|
+
- `codex`
|
|
28
|
+
- `claude`
|
|
29
|
+
- `gemini`
|
|
30
|
+
|
|
31
|
+
Do not expose Qwen or other providers in the main selector until Quiver has a real provider adapter for them.
|
|
32
|
+
|
|
33
|
+
### Known Model Catalog
|
|
34
|
+
|
|
35
|
+
Add a local, versioned model catalog owned by Quiver. The catalog is advisory, not a guarantee that a model is enabled for the user's account.
|
|
36
|
+
|
|
37
|
+
Required catalog metadata:
|
|
38
|
+
|
|
39
|
+
- provider id;
|
|
40
|
+
- model id;
|
|
41
|
+
- display name;
|
|
42
|
+
- aliases;
|
|
43
|
+
- recommended roles;
|
|
44
|
+
- cost tier;
|
|
45
|
+
- quality tier;
|
|
46
|
+
- stability;
|
|
47
|
+
- notes;
|
|
48
|
+
- catalog version;
|
|
49
|
+
- last updated date.
|
|
50
|
+
|
|
51
|
+
Required Codex entries:
|
|
52
|
+
|
|
53
|
+
- `gpt-5.5` / `GPT 5.5`
|
|
54
|
+
- `gpt-5.4` / `GPT 5.4`
|
|
55
|
+
- `gpt-5.4-mini` / `GPT 5.4 mini`
|
|
56
|
+
- `gpt-5.3-codex` / `GPT 5.3 Codex`
|
|
57
|
+
- `gpt-5.3-codex-spark` / `GPT 5.3 Codex Spark`
|
|
58
|
+
- `custom`
|
|
59
|
+
|
|
60
|
+
Required Claude entries:
|
|
61
|
+
|
|
62
|
+
- `opus` / `Claude Opus`
|
|
63
|
+
- `sonnet` / `Claude Sonnet`
|
|
64
|
+
- `haiku` / `Claude Haiku`
|
|
65
|
+
- versioned known entries for Opus, Sonnet, and Haiku where Quiver documents them as known local catalog choices;
|
|
66
|
+
- `custom`
|
|
67
|
+
|
|
68
|
+
Required Gemini entries:
|
|
69
|
+
|
|
70
|
+
- `gemini-3.1-pro-preview` / `Gemini 3.1 Pro Preview`
|
|
71
|
+
- `gemini-3.5-flash` / `Gemini 3.5 Flash`
|
|
72
|
+
- `gemini-3.1-flash-lite` / `Gemini 3.1 Flash-Lite`
|
|
73
|
+
- `gemini-3.1-pro-preview-customtools` / `Gemini 3.1 Pro Custom Tools`
|
|
74
|
+
- `custom`
|
|
75
|
+
|
|
76
|
+
Use the phrase "known by Quiver" in human output. Do not call catalog entries "available" unless a live validation has passed.
|
|
77
|
+
|
|
78
|
+
### Agent Profile Contract
|
|
79
|
+
|
|
80
|
+
The persisted profile must separate technical and human values:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"provider": "codex",
|
|
85
|
+
"model": "gpt-5.5",
|
|
86
|
+
"displayName": "GPT 5.5",
|
|
87
|
+
"modelSource": "catalog",
|
|
88
|
+
"validation_status": "not-tested"
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Rules:
|
|
93
|
+
|
|
94
|
+
- `model` is the technical id sent to the provider CLI.
|
|
95
|
+
- `displayName` is the human label shown in Quiver output.
|
|
96
|
+
- Existing v2 profiles remain readable.
|
|
97
|
+
- New fields must be optional unless a schema bump is required.
|
|
98
|
+
- Profiles must never store provider secrets.
|
|
99
|
+
|
|
100
|
+
### Interactive Agent Setup
|
|
101
|
+
|
|
102
|
+
When a user runs:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
npx create-quiver ai agent set planner
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
in an interactive terminal, Quiver should guide setup:
|
|
109
|
+
|
|
110
|
+
1. show existing role profiles if present;
|
|
111
|
+
2. ask whether to update current profile, create a new profile, change default, or cancel;
|
|
112
|
+
3. show provider choices with CLI install status;
|
|
113
|
+
4. show known models for the selected provider, ordered by the requested role;
|
|
114
|
+
5. allow `custom`;
|
|
115
|
+
6. show a summary before writing;
|
|
116
|
+
7. optionally run a live validation test before saving.
|
|
117
|
+
|
|
118
|
+
In CI/no-TTY, the same command must not hang. It must fail with an actionable message asking for explicit `--provider` and `--model`.
|
|
119
|
+
|
|
120
|
+
### Alias Normalization
|
|
121
|
+
|
|
122
|
+
Known aliases must be matched case-insensitively and tolerate spaces, dashes, and common title casing.
|
|
123
|
+
|
|
124
|
+
Examples that must resolve to `gpt-5.5`:
|
|
125
|
+
|
|
126
|
+
- `GPT 5.5`
|
|
127
|
+
- `gpt 5.5`
|
|
128
|
+
- `Gpt-5.5`
|
|
129
|
+
- `gpt-5.5`
|
|
130
|
+
|
|
131
|
+
When a command receives a known display alias through `--model`, Quiver must normalize it or block before provider execution with a concrete suggestion.
|
|
132
|
+
|
|
133
|
+
### Custom Models
|
|
134
|
+
|
|
135
|
+
Users can select or pass custom models. Quiver should allow them, but mark them as not validated unless a live provider test passes.
|
|
136
|
+
|
|
137
|
+
For `custom`, prompt for:
|
|
138
|
+
|
|
139
|
+
- technical model id;
|
|
140
|
+
- display name, defaulting to the id.
|
|
141
|
+
|
|
142
|
+
### Optional Live Validation
|
|
143
|
+
|
|
144
|
+
Interactive setup may offer a live validation:
|
|
145
|
+
|
|
146
|
+
```txt
|
|
147
|
+
This test executes the provider and may consume tokens.
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Validation prompt:
|
|
151
|
+
|
|
152
|
+
```txt
|
|
153
|
+
Respond exactly: ok
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Default timeout: 60 seconds.
|
|
157
|
+
|
|
158
|
+
If output contains `ok`, mark validation passed. If it fails, do not save by default and show the relevant provider error.
|
|
159
|
+
|
|
160
|
+
### Agent Doctor and Repair
|
|
161
|
+
|
|
162
|
+
Add diagnostics for existing profiles:
|
|
163
|
+
|
|
164
|
+
- missing provider;
|
|
165
|
+
- missing model;
|
|
166
|
+
- unsupported provider;
|
|
167
|
+
- display alias stored in `model`;
|
|
168
|
+
- custom model not validated;
|
|
169
|
+
- provider CLI missing;
|
|
170
|
+
- provider model flag unsupported;
|
|
171
|
+
- duplicate display names;
|
|
172
|
+
- multiple profiles per role and default profile.
|
|
173
|
+
|
|
174
|
+
Add dry-run repair:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npx create-quiver ai agent repair --dry-run
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
It must propose changes without writing files. If a write mode is added, it must require explicit confirmation or `--yes`.
|
|
181
|
+
|
|
182
|
+
### AI Models List
|
|
183
|
+
|
|
184
|
+
Add:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
npx create-quiver ai models list
|
|
188
|
+
npx create-quiver ai models list --provider codex
|
|
189
|
+
npx create-quiver ai models list --json
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Human output must group by provider and show recommended roles. JSON output must include `catalogVersion` and `lastUpdated`.
|
|
193
|
+
|
|
194
|
+
### Shared Preflight
|
|
195
|
+
|
|
196
|
+
The model resolution and preflight logic must be shared by profile setup and live AI commands:
|
|
197
|
+
|
|
198
|
+
- `ai prepare-context`
|
|
199
|
+
- `ai onboard`
|
|
200
|
+
- `ai plan`
|
|
201
|
+
- `ai review-plan`
|
|
202
|
+
- `ai revise`
|
|
203
|
+
- `ai repair-plan`
|
|
204
|
+
- `ai execute-slice`
|
|
205
|
+
- `ai execute-plan`
|
|
206
|
+
|
|
207
|
+
Any live provider execution must block before invoking the provider when a known bad model/display alias can be corrected safely.
|
|
208
|
+
|
|
209
|
+
### Provider Error Extraction
|
|
210
|
+
|
|
211
|
+
Provider errors can include noisy secondary lines, for example MCP auth warnings. Quiver must prioritize actionable causes:
|
|
212
|
+
|
|
213
|
+
1. invalid or unsupported model;
|
|
214
|
+
2. provider auth;
|
|
215
|
+
3. CLI missing;
|
|
216
|
+
4. timeout;
|
|
217
|
+
5. secondary tool/MCP warnings.
|
|
218
|
+
|
|
219
|
+
When possible, replace generic `provider run failed` with the provider's useful message plus suggested Quiver commands.
|
|
220
|
+
|
|
221
|
+
### Documentation
|
|
222
|
+
|
|
223
|
+
Update repository docs and generated templates:
|
|
224
|
+
|
|
225
|
+
- `README.md` when the public onboarding flow needs a short mention;
|
|
226
|
+
- `README_FOR_AI.md` as source of truth;
|
|
227
|
+
- `ROADMAP.md`;
|
|
228
|
+
- `docs/CLI_UX_GUIDE.md`;
|
|
229
|
+
- `docs/reference/commands.md`;
|
|
230
|
+
- `docs/COMMANDS.md.template`;
|
|
231
|
+
- generated onboarding docs/templates if agent setup guidance is exposed to new projects.
|
|
232
|
+
|
|
233
|
+
Docs must explain:
|
|
234
|
+
|
|
235
|
+
- `model` vs `displayName`;
|
|
236
|
+
- known catalog vs account availability;
|
|
237
|
+
- interactive setup;
|
|
238
|
+
- no-TTY/script setup;
|
|
239
|
+
- `ai models list`;
|
|
240
|
+
- `ai agent doctor`;
|
|
241
|
+
- `ai agent repair --dry-run`;
|
|
242
|
+
- how to repair profiles from Quiver versions before this spec.
|
|
243
|
+
|
|
244
|
+
## Acceptance Criteria
|
|
245
|
+
|
|
246
|
+
### Interactive Setup
|
|
247
|
+
|
|
248
|
+
- Given a Quiver project, when `ai agent set planner` runs in a TTY without provider/model flags, then Quiver shows an interactive provider selector.
|
|
249
|
+
- Given the provider selector, when providers are listed, then Codex, Claude, and Gemini are shown with CLI install status.
|
|
250
|
+
- Given a selected provider, when the model selector opens, then Quiver shows models known by Quiver plus `custom`.
|
|
251
|
+
- Given a known model selection, when the profile is saved, then `model` contains the technical id and `displayName` contains the human label.
|
|
252
|
+
- Given an existing profile, when interactive setup starts, then Quiver shows the current profile and lets the user update, create, change default, or cancel.
|
|
253
|
+
- Given a canceled selector, then Quiver writes no files and reports configuration canceled.
|
|
254
|
+
|
|
255
|
+
### Non-Interactive Safety
|
|
256
|
+
|
|
257
|
+
- Given CI/no-TTY, when `ai agent set planner` lacks enough flags, then Quiver exits without hanging and prints explicit flag guidance.
|
|
258
|
+
- Given a scripted command with `--provider` and `--model`, then Quiver preserves non-interactive behavior.
|
|
259
|
+
- Given `--dry-run` and a known alias, then Quiver previews the normalized profile without writing.
|
|
260
|
+
|
|
261
|
+
### Catalog and Alias Behavior
|
|
262
|
+
|
|
263
|
+
- Given Codex, Claude, or Gemini, when models are listed, then the required catalog entries and `custom` are present.
|
|
264
|
+
- Given `GPT 5.5`, `gpt 5.5`, `Gpt-5.5`, or `gpt-5.5`, when the value is normalized for Codex, then the technical id resolves to `gpt-5.5`.
|
|
265
|
+
- Given an ambiguous alias, then Quiver does not choose automatically in non-interactive mode and requests explicit selection or a concrete model id.
|
|
266
|
+
- Given `custom`, then Quiver asks for technical id and display name, defaulting display name to the id.
|
|
267
|
+
- Given a catalog model that was not live-tested, then Quiver describes it as known by Quiver, not available.
|
|
268
|
+
|
|
269
|
+
### Live Validation
|
|
270
|
+
|
|
271
|
+
- Given a user chooses live validation, then Quiver warns that the test can consume tokens before provider execution.
|
|
272
|
+
- Given the validation returns output containing `ok`, then Quiver marks the profile as validation passed.
|
|
273
|
+
- Given validation fails or times out, then Quiver does not save a passing validation state and shows the relevant error.
|
|
274
|
+
- Given provider stderr includes secrets or sensitive-looking tokens, then Quiver redacts them before output or saved evidence.
|
|
275
|
+
|
|
276
|
+
### Doctor and Repair
|
|
277
|
+
|
|
278
|
+
- Given multiple profiles per role, `ai agent doctor` evaluates every profile and identifies the default.
|
|
279
|
+
- Given an unsupported provider, doctor marks it as `error`.
|
|
280
|
+
- Given a custom model not validated, doctor marks it as `warning`.
|
|
281
|
+
- Given a display alias stored in `model`, doctor reports the issue and suggests `ai agent repair --dry-run`.
|
|
282
|
+
- Given `ai agent repair --dry-run`, Quiver shows proposed before/after changes without modifying files.
|
|
283
|
+
- Given `ai agent repair` without `--dry-run`, Quiver does not write without explicit confirmation or `--yes`.
|
|
284
|
+
|
|
285
|
+
### AI Models List
|
|
286
|
+
|
|
287
|
+
- Given `ai models list`, output is grouped by provider and includes recommended roles.
|
|
288
|
+
- Given `ai models list --provider codex`, output only includes Codex catalog entries.
|
|
289
|
+
- Given `ai models list --json`, output is valid JSON without colors or prose and includes `catalogVersion` and `lastUpdated`.
|
|
290
|
+
|
|
291
|
+
### Shared Preflight and Provider Errors
|
|
292
|
+
|
|
293
|
+
- Given any live AI command receives `--model "GPT 5.5"`, Quiver normalizes or blocks with suggestion before invoking the provider.
|
|
294
|
+
- Given a profile with `model: "GPT 5.5"`, `ai prepare-context --with-planner` blocks before calling Codex and suggests `model: gpt-5.5`, `displayName: GPT 5.5`.
|
|
295
|
+
- Given the provider emits multiple errors and one is an invalid model, Quiver reports invalid model as the primary cause.
|
|
296
|
+
- Given dry-run for a provider/model, Quiver shows the real command that would execute.
|
|
297
|
+
|
|
298
|
+
### Documentation and Release Readiness
|
|
299
|
+
|
|
300
|
+
- Given the docs are read after implementation, they explain `model` vs `displayName`, known catalog limitations, setup flows, doctor, repair, and model listing.
|
|
301
|
+
- Given generated project templates are inspected, they include current agent setup guidance where appropriate.
|
|
302
|
+
- Given package readiness runs, tests cover catalog, aliases, selectors, no-TTY, JSON, doctor, repair, provider error extraction, and legacy profile compatibility.
|
|
303
|
+
- Given package dry-run runs, the catalog is included and local `.quiver/` state is not published.
|
|
304
|
+
|
|
305
|
+
## Non-Scope
|
|
306
|
+
|
|
307
|
+
- Remote API for dynamic model catalog updates.
|
|
308
|
+
- Qwen provider support before an adapter exists.
|
|
309
|
+
- Installing provider CLIs.
|
|
310
|
+
- Editing provider credentials.
|
|
311
|
+
- Guaranteeing account-level model access without a live validation.
|
|
312
|
+
- Publishing npm as part of implementation.
|
|
313
|
+
|
|
314
|
+
## Technical Plan
|
|
315
|
+
|
|
316
|
+
1. Create `src/create-quiver/lib/ai/model-catalog.js` as the single source of truth.
|
|
317
|
+
2. Add alias normalization and model resolution helpers.
|
|
318
|
+
3. Extend agent profile setup with interactive provider/model selection.
|
|
319
|
+
4. Preserve non-interactive/CI behavior and add no-TTY guardrails.
|
|
320
|
+
5. Add `ai agent doctor` and `ai agent repair --dry-run`.
|
|
321
|
+
6. Add shared model preflight for every live AI command.
|
|
322
|
+
7. Improve provider error extraction and actionable messages.
|
|
323
|
+
8. Add `ai models list` with human and JSON output.
|
|
324
|
+
9. Update docs, templates, and source-of-truth guidance.
|
|
325
|
+
10. Add tests, smokes, package dry-run, and final evidence.
|
|
326
|
+
|
|
327
|
+
## Risks
|
|
328
|
+
|
|
329
|
+
- Model catalogs can become stale.
|
|
330
|
+
- Provider CLIs can change model flags or behavior.
|
|
331
|
+
- Live validation can consume tokens.
|
|
332
|
+
- Some accounts can lack access to catalog models.
|
|
333
|
+
- Existing profiles may contain user-specific custom values.
|
|
334
|
+
|
|
335
|
+
## Rollback
|
|
336
|
+
|
|
337
|
+
Revert slice commits in reverse order. The current free-form `model` path must remain available through non-interactive flags and custom model support.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Status - Quiver v31 AI Model Catalog and Agent Selection
|
|
2
|
+
|
|
3
|
+
**Overall status:** Release-ready, pending PR/package publication
|
|
4
|
+
**Created:** 2026-05-27
|
|
5
|
+
**Current slice:** slice-07 completed
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
This spec improves AI agent setup by adding a local model catalog, provider/model selectors, alias normalization, profile diagnostics, repair dry-runs, shared model preflight, clearer provider errors, command documentation, generated-template guidance, and release-readiness evidence.
|
|
10
|
+
|
|
11
|
+
## Slice Status
|
|
12
|
+
|
|
13
|
+
| Slice | Status | Notes |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| slice-00-spec-foundation | Completed | Documentation package created, source-of-truth docs synchronized, validation passed. |
|
|
16
|
+
| slice-01-model-catalog-alias-normalization | Completed | Local catalog, role metadata, aliases, custom model support, and profile normalization added. |
|
|
17
|
+
| slice-02-interactive-agent-set-selectors | Completed | Guided `ai agent set <role>` provider/model flow, no-TTY guardrails, custom models, and profile actions added. |
|
|
18
|
+
| slice-03-agent-doctor-repair | Completed | Profile diagnostics, JSON output, error exit codes, and dry-run alias repair added. |
|
|
19
|
+
| slice-04-shared-preflight-provider-errors | Completed | Shared alias preflight, CLI override normalization, and provider error extraction added. |
|
|
20
|
+
| slice-05-ai-models-list | Completed | `ai models list` human/JSON output, provider filter, and help contract added. |
|
|
21
|
+
| slice-06-docs-templates-alignment | Completed | README, command reference, CLI UX guide, AI templates, roadmap, and AI source of truth aligned with the model/profile contract. |
|
|
22
|
+
| slice-07-tests-smokes-release-readiness | Completed | Full suite, smokes, package safety, npm pack dry-run, spec validation, and final evidence completed. |
|
|
23
|
+
|
|
24
|
+
## Current Blockers
|
|
25
|
+
|
|
26
|
+
- None. Implementation must begin with `slice-00`.
|
|
27
|
+
|
|
28
|
+
## Next Step
|
|
29
|
+
|
|
30
|
+
Open the PR or publish only after explicit human approval.
|