create-quiver 0.15.0 → 0.15.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.
Files changed (96) hide show
  1. package/.github/workflows/ci.yml +3 -0
  2. package/CHANGELOG.md +6 -0
  3. package/README.md +33 -0
  4. package/README_FOR_AI.md +13 -6
  5. package/ROADMAP.md +5 -0
  6. package/docs/AI_CONTEXT.md.template +4 -0
  7. package/docs/AI_ONBOARDING_PROMPT.md.template +8 -0
  8. package/docs/CLI_UX_GUIDE.md +31 -2
  9. package/docs/COMMANDS.md.template +16 -5
  10. package/docs/TROUBLESHOOTING.md +70 -0
  11. package/docs/TROUBLESHOOTING.md.template +20 -0
  12. package/docs/WORKFLOW.md.template +2 -2
  13. package/docs/getting-started/installation.md +86 -0
  14. package/docs/reference/commands.md +39 -5
  15. package/package.json +1 -1
  16. package/specs/quiver-v31-ai-model-catalog-agent-selection/EVIDENCE_REPORT.md +185 -0
  17. package/specs/quiver-v31-ai-model-catalog-agent-selection/EXECUTION_PLAN.md +85 -0
  18. package/specs/quiver-v31-ai-model-catalog-agent-selection/SPEC.md +337 -0
  19. package/specs/quiver-v31-ai-model-catalog-agent-selection/STATUS.md +30 -0
  20. package/specs/quiver-v31-ai-model-catalog-agent-selection/pr.md +98 -0
  21. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
  22. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +51 -0
  23. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-00-spec-foundation/slice.json +62 -0
  24. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-01-model-catalog-alias-normalization/CLOSURE_BRIEF.md +32 -0
  25. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-01-model-catalog-alias-normalization/EXECUTION_BRIEF.md +53 -0
  26. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-01-model-catalog-alias-normalization/slice.json +72 -0
  27. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-02-interactive-agent-set-selectors/CLOSURE_BRIEF.md +36 -0
  28. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-02-interactive-agent-set-selectors/EXECUTION_BRIEF.md +56 -0
  29. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-02-interactive-agent-set-selectors/slice.json +78 -0
  30. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-03-agent-doctor-repair/CLOSURE_BRIEF.md +36 -0
  31. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-03-agent-doctor-repair/EXECUTION_BRIEF.md +57 -0
  32. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-03-agent-doctor-repair/slice.json +77 -0
  33. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-04-shared-preflight-provider-errors/CLOSURE_BRIEF.md +35 -0
  34. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-04-shared-preflight-provider-errors/EXECUTION_BRIEF.md +55 -0
  35. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-04-shared-preflight-provider-errors/slice.json +84 -0
  36. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-05-ai-models-list/CLOSURE_BRIEF.md +32 -0
  37. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-05-ai-models-list/EXECUTION_BRIEF.md +52 -0
  38. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-05-ai-models-list/slice.json +72 -0
  39. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-06-docs-templates-alignment/CLOSURE_BRIEF.md +33 -0
  40. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-06-docs-templates-alignment/EXECUTION_BRIEF.md +58 -0
  41. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-06-docs-templates-alignment/slice.json +84 -0
  42. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-07-tests-smokes-release-readiness/CLOSURE_BRIEF.md +32 -0
  43. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-07-tests-smokes-release-readiness/EXECUTION_BRIEF.md +59 -0
  44. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-07-tests-smokes-release-readiness/slice.json +94 -0
  45. package/specs/quiver-v32-npx-installation-guidance/EVIDENCE_REPORT.md +26 -0
  46. package/specs/quiver-v32-npx-installation-guidance/SPEC.md +55 -0
  47. package/specs/quiver-v32-npx-installation-guidance/STATUS.md +23 -0
  48. package/specs/quiver-v32-npx-installation-guidance/pr.md +72 -0
  49. package/specs/quiver-v32-npx-installation-guidance/slices/slice-00-installation-docs/CLOSURE_BRIEF.md +31 -0
  50. package/specs/quiver-v32-npx-installation-guidance/slices/slice-00-installation-docs/EXECUTION_BRIEF.md +56 -0
  51. package/specs/quiver-v32-npx-installation-guidance/slices/slice-00-installation-docs/slice.json +75 -0
  52. package/specs/quiver-v33-approval-ux-and-planner-progress/EVIDENCE_REPORT.md +93 -0
  53. package/specs/quiver-v33-approval-ux-and-planner-progress/EXECUTION_PLAN.md +83 -0
  54. package/specs/quiver-v33-approval-ux-and-planner-progress/SPEC.md +158 -0
  55. package/specs/quiver-v33-approval-ux-and-planner-progress/STATUS.md +31 -0
  56. package/specs/quiver-v33-approval-ux-and-planner-progress/pr.md +109 -0
  57. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/CLOSURE_BRIEF.md +30 -0
  58. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/EXECUTION_BRIEF.md +56 -0
  59. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/slice.json +65 -0
  60. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/CLOSURE_BRIEF.md +19 -0
  61. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/EXECUTION_BRIEF.md +51 -0
  62. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/slice.json +74 -0
  63. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/CLOSURE_BRIEF.md +20 -0
  64. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/EXECUTION_BRIEF.md +53 -0
  65. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/slice.json +79 -0
  66. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/CLOSURE_BRIEF.md +19 -0
  67. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/EXECUTION_BRIEF.md +50 -0
  68. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/slice.json +75 -0
  69. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/CLOSURE_BRIEF.md +19 -0
  70. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/EXECUTION_BRIEF.md +51 -0
  71. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/slice.json +73 -0
  72. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/CLOSURE_BRIEF.md +20 -0
  73. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/EXECUTION_BRIEF.md +51 -0
  74. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/slice.json +91 -0
  75. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/CLOSURE_BRIEF.md +20 -0
  76. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/EXECUTION_BRIEF.md +53 -0
  77. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/slice.json +87 -0
  78. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/CLOSURE_BRIEF.md +21 -0
  79. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/EXECUTION_BRIEF.md +55 -0
  80. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/slice.json +97 -0
  81. package/src/create-quiver/commands/ai.js +561 -46
  82. package/src/create-quiver/commands/flow.js +76 -14
  83. package/src/create-quiver/commands/spec.js +8 -1
  84. package/src/create-quiver/index.js +36 -12
  85. package/src/create-quiver/lib/agent-profiles.js +332 -4
  86. package/src/create-quiver/lib/ai/approval-candidates.js +86 -0
  87. package/src/create-quiver/lib/ai/execution-plan.js +7 -2
  88. package/src/create-quiver/lib/ai/executor.js +9 -2
  89. package/src/create-quiver/lib/ai/model-catalog.js +333 -0
  90. package/src/create-quiver/lib/ai/plan-review.js +77 -1
  91. package/src/create-quiver/lib/ai/providers.js +143 -4
  92. package/src/create-quiver/lib/ai/run-state.js +21 -4
  93. package/src/create-quiver/lib/approvals.js +103 -0
  94. package/src/create-quiver/lib/cli/selectors.js +53 -0
  95. package/src/create-quiver/lib/git.js +13 -4
  96. package/src/create-quiver/lib/paths.js +45 -3
@@ -2,6 +2,25 @@
2
2
 
3
3
  Usá `npx --yes create-quiver@latest --help` para ver la lista viva de comandos soportados por la versión instalada.
4
4
 
5
+ ## npx vs instalación local
6
+
7
+ Quiver está pensado para ejecutarse principalmente con `npx`:
8
+
9
+ ```bash
10
+ npx --yes create-quiver@latest <comando>
11
+ ```
12
+
13
+ En ese modo npm descarga o reutiliza el CLI desde su caché y no lo instala en `node_modules`. Eso es normal: `create-quiver` es una herramienta de workflow, no una dependencia runtime de la app.
14
+
15
+ Instalalo como dependencia de desarrollo solo si querés fijar una versión para el equipo:
16
+
17
+ ```bash
18
+ npm install --save-dev create-quiver
19
+ npx create-quiver <comando>
20
+ ```
21
+
22
+ Más detalle: [Instalación y uso con npx](../getting-started/installation.md).
23
+
5
24
  ## Configuración inicial
6
25
 
7
26
  | Comando | Para qué sirve |
@@ -26,16 +45,29 @@ Usá `npx --yes create-quiver@latest --help` para ver la lista viva de comandos
26
45
  | `npx --yes create-quiver@latest ai prepare-context --with-planner --dry-run` | Previsualiza una propuesta docs-only generada por el planner sin escribir archivos. |
27
46
  | `npx --yes create-quiver@latest ai prepare-context --with-planner --print-prompt` | Imprime el prompt exacto para ejecutar el planner en otro entorno. |
28
47
  | `npx --yes create-quiver@latest ai prepare-context --with-planner --review --interactive` | Ejecuta planner, abre revisión humana y pide confirmación antes de escribir docs permitidos. |
29
- | `npx --yes create-quiver@latest ai agent set <role> --provider <provider> --model "<label>"` | Guarda un perfil de agente sin secretos. |
48
+ | `npx --yes create-quiver@latest ai models list` | Lista proveedores y modelos conocidos por Quiver sin afirmar disponibilidad en la cuenta. |
49
+ | `npx --yes create-quiver@latest ai models list --provider codex` | Filtra el catálogo local por proveedor. |
50
+ | `npx --yes create-quiver@latest ai models list --json` | Emite el catálogo local en JSON parseable. |
51
+ | `npx --yes create-quiver@latest ai agent set <role>` | En TTY, guía la selección de proveedor, modelo conocido por Quiver o modelo custom. |
52
+ | `npx --yes create-quiver@latest ai agent set <role> --provider <provider> --model <model-id>` | Guarda un perfil de agente sin secretos en modo script/no-TTY. |
53
+ | `npx --yes create-quiver@latest ai agent set planner --provider codex --model gpt-5.5 --dry-run` | Previsualiza la escritura del perfil sin modificar `.quiver/agents/profiles.json`. |
54
+ | `npx --yes create-quiver@latest ai agent doctor` | Diagnostica perfiles de agentes, alias visuales, proveedores faltantes y modelos custom no validados. |
55
+ | `npx --yes create-quiver@latest ai agent doctor --json` | Emite el diagnóstico de perfiles como JSON parseable. |
56
+ | `npx --yes create-quiver@latest ai agent repair --dry-run` | Previsualiza reparaciones seguras de perfiles, como normalizar `model: "GPT 5.5"` a `model: "gpt-5.5"` y `displayName: "GPT 5.5"`. |
30
57
  | `npx --yes create-quiver@latest ai run create --input <file>` | Inicia una ejecución persistente de IA. |
31
58
  | `npx --yes create-quiver@latest ai status` | Muestra el estado de la ejecución actual. |
32
59
  | `npx --yes create-quiver@latest ai plan --phase acceptance --input <file>` | Genera criterios de aceptación. |
33
60
  | `npx --yes create-quiver@latest ai plan --phase acceptance --review --interactive --input <file>` | Permite revisar y confirmar el borrador del planner antes de guardarlo. |
34
- | `npx --yes create-quiver@latest ai revise --phase acceptance --input <file>` | Crea una nueva versión de criterios. |
35
- | `npx --yes create-quiver@latest ai approve --phase acceptance --version <n>` | Aprueba criterios. |
61
+ | `npx --yes create-quiver@latest ai revise --phase acceptance --input <feedback.md>` | Crea una nueva versión de criterios desde feedback; `--input` sin valor o archivos inexistentes fallan antes del proveedor. |
62
+ | `npx --yes create-quiver@latest ai approve --phase acceptance` | En TTY lista drafts y recomienda el current/latest; en CI/no-TTY exige `--version <n>`. |
63
+ | `npx --yes create-quiver@latest ai approve --phase acceptance --version <n>` | Aprueba criterios en modo explícito/script-safe. |
36
64
  | `npx --yes create-quiver@latest ai plan --phase technical-plan` | Genera plan técnico. |
37
- | `npx --yes create-quiver@latest ai review-plan` | Revisa el plan técnico. |
38
- | `npx --yes create-quiver@latest ai approve --phase technical-plan --version <n>` | Aprueba el plan técnico revisado. |
65
+ | `npx --yes create-quiver@latest ai revise --phase technical-plan --input <feedback.md>` | Crea una nueva versión del plan técnico desde feedback. |
66
+ | `npx --yes create-quiver@latest ai review-plan` | Revisa el plan técnico y guarda recomendación `approve`, `approve-with-risk` o `revise`. |
67
+ | `npx --yes create-quiver@latest ai repair-plan` | Repara un plan técnico aprobado legacy que no cumple el contrato `spec.slices[]`, creando un nuevo draft. |
68
+ | `npx --yes create-quiver@latest ai approve --phase technical-plan` | En TTY lista drafts con datos de review; `revise` bloquea aprobación y `approve-with-risk` muestra riesgos. |
69
+ | `npx --yes create-quiver@latest ai approve --phase technical-plan --version <n>` | Aprueba el plan técnico revisado en modo explícito/script-safe. |
70
+ | `npx --yes create-quiver@latest ai approvals` | Muestra approvals run-scoped/globales, candidatos actuales, versión recomendada y próximo comando. |
39
71
 
40
72
  ## Specs y slices
41
73
 
@@ -76,6 +108,7 @@ Usá `npx --yes create-quiver@latest --help` para ver la lista viva de comandos
76
108
  | `--methodology wdd-sdd` | Declara la metodología soportada por comandos interactivos o automatizados. |
77
109
  | `--no-color` | Desactiva colores ANSI en salida humana. |
78
110
  | `--provider codex\|claude\|gemini` | Selecciona CLI local de proveedor. |
111
+ | `--model <model-id>` | Selecciona el identificador técnico del modelo para `ai agent set` o ejecución de proveedor. Quiver normaliza alias conocidos, pero no garantiza acceso en la cuenta del proveedor. |
79
112
  | `--commit` | Permite que Quiver commitee trabajo validado del slice. |
80
113
  | `--mode manual` | Imprime prompts para asignación manual de ejecutores. |
81
114
  | `--mode delegated` | Usa ejecución delegada con worktrees temporales cuando es seguro. |
@@ -90,6 +123,7 @@ Usá `npx --yes create-quiver@latest --help` para ver la lista viva de comandos
90
123
  | `ai plan` | sí | sí | sí |
91
124
  | `spec create` | sí | sí | sí |
92
125
  | `ai pr` | no | sí | sí |
126
+ | `ai approve` | no | no | no |
93
127
  | `flow`, `next`, `graph` | no | no | no |
94
128
  | `ai inspect`, `ai export`, `ai specs list`, `ai slices list`, `ai trace report` | no | no | no |
95
129
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-quiver",
3
- "version": "0.15.0",
3
+ "version": "0.15.2",
4
4
  "private": false,
5
5
  "description": "Quiver CLI for scaffolding projects from the packaged template",
6
6
  "license": "MIT",
@@ -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`