create-quiver 0.14.1 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +4 -0
- package/README_FOR_AI.md +8 -2
- package/ROADMAP.md +8 -2
- package/docs/CLI_UX_GUIDE.md +64 -4
- package/docs/COMMANDS.md.template +7 -1
- package/docs/reference/commands.md +4 -0
- 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/src/create-quiver/commands/ai.js +364 -81
- package/src/create-quiver/commands/spec.js +106 -6
- package/src/create-quiver/index.js +533 -70
- package/src/create-quiver/lib/agent-profiles.js +111 -10
- package/src/create-quiver/lib/ai/execution-plan.js +106 -8
- package/src/create-quiver/lib/ai/executor.js +284 -28
- package/src/create-quiver/lib/ai/providers.js +71 -1
- package/src/create-quiver/lib/cli/selectors.js +107 -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,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-05-executor-pr-progress-flows",
|
|
3
|
+
"ticket": "QUIVER-30-05",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Executor, execution-plan, and PR progress flows",
|
|
6
|
+
"objective": "Apply the UX runtime, selectors, and progress contract to executor-oriented, execution-plan, and PR commands.",
|
|
7
|
+
"description": "Adds visible progress and selector-safe execution to ai execute-slice, ai execute-plan, ai prompt-slice where useful, and ai pr.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v30-executor-pr-progress-flows",
|
|
12
|
+
"branch_name": "feature/QUIVER-30-05-v30-executor-pr-progress-flows"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/commands/ai.js",
|
|
16
|
+
"src/create-quiver/lib/ai/executor.js",
|
|
17
|
+
"src/create-quiver/lib/ai/execution-plan.js",
|
|
18
|
+
"src/create-quiver/lib/ai/github.js",
|
|
19
|
+
"src/create-quiver/lib/cli/**",
|
|
20
|
+
"tests/commands/ai-execute-*.test.js",
|
|
21
|
+
"tests/commands/ai-pr.test.js",
|
|
22
|
+
"specs/quiver-v30-interactive-cli-ux-agent-selection/**"
|
|
23
|
+
],
|
|
24
|
+
"expected_read_paths": [
|
|
25
|
+
"src/create-quiver/commands/ai.js",
|
|
26
|
+
"src/create-quiver/lib/ai/executor.js",
|
|
27
|
+
"src/create-quiver/lib/ai/execution-plan.js",
|
|
28
|
+
"src/create-quiver/lib/ai/github.js",
|
|
29
|
+
"src/create-quiver/lib/slice-graph.js",
|
|
30
|
+
"docs/GITFLOW_PR_GUIDE.md"
|
|
31
|
+
],
|
|
32
|
+
"allowed_write_paths": [
|
|
33
|
+
"src/create-quiver/commands/ai.js",
|
|
34
|
+
"src/create-quiver/lib/ai/executor.js",
|
|
35
|
+
"src/create-quiver/lib/ai/execution-plan.js",
|
|
36
|
+
"src/create-quiver/lib/ai/github.js",
|
|
37
|
+
"src/create-quiver/lib/cli/**",
|
|
38
|
+
"tests/commands/ai-execute-*.test.js",
|
|
39
|
+
"tests/commands/ai-pr.test.js",
|
|
40
|
+
"docs/CLI_UX_GUIDE.md",
|
|
41
|
+
"docs/reference/commands.md",
|
|
42
|
+
"README_FOR_AI.md",
|
|
43
|
+
"specs/quiver-v30-interactive-cli-ux-agent-selection/**"
|
|
44
|
+
],
|
|
45
|
+
"depends_on": [
|
|
46
|
+
"slice-01-cli-ux-runtime-progress-engine",
|
|
47
|
+
"slice-02-agent-profile-selection-selectors",
|
|
48
|
+
"slice-03-provider-model-selection-contract"
|
|
49
|
+
],
|
|
50
|
+
"parallel_safe": "after_dependencies",
|
|
51
|
+
"parallel_safe_reason": "Can run after shared contracts, but may conflict with slice-04 in commands/ai.js.",
|
|
52
|
+
"must": [
|
|
53
|
+
"Use Executor display names for slice execution headings.",
|
|
54
|
+
"Add real stages for reading handoff, validating scope, preparing prompt, executing agent, validating diff, running checks, and committing when requested.",
|
|
55
|
+
"Add selector support for spec, slice, executor, execution strategy, and PR input when interactive.",
|
|
56
|
+
"Add real progress for ai pr preflight and PR creation.",
|
|
57
|
+
"Keep ai prompt-slice copyable and avoid unnecessary spinners.",
|
|
58
|
+
"Keep one-slice/one-commit behavior unchanged."
|
|
59
|
+
],
|
|
60
|
+
"not_included": [
|
|
61
|
+
"Planner progress flows.",
|
|
62
|
+
"Doctor output.",
|
|
63
|
+
"Changing GitHub authentication semantics."
|
|
64
|
+
],
|
|
65
|
+
"acceptance": [
|
|
66
|
+
"Executor commands show selected Executor display name.",
|
|
67
|
+
"Spec and slice selectors use unique internal values and respect dependencies.",
|
|
68
|
+
"Blocked slices are not silently selected as ready.",
|
|
69
|
+
"ai pr shows validation and creation progress without hiding gh errors.",
|
|
70
|
+
"Machine output remains clean."
|
|
71
|
+
],
|
|
72
|
+
"tests": [
|
|
73
|
+
"node --test tests/commands/ai-execute-slice.test.js tests/commands/ai-execute-plan.test.js tests/commands/ai-pr.test.js",
|
|
74
|
+
"git diff --check"
|
|
75
|
+
],
|
|
76
|
+
"validation_hints": [
|
|
77
|
+
"Use dry-run/manual modes for tests that should not execute provider CLIs.",
|
|
78
|
+
"Do not stream noisy provider output unless --verbose is introduced and tested."
|
|
79
|
+
],
|
|
80
|
+
"estimated_hours": 12,
|
|
81
|
+
"status": "completed",
|
|
82
|
+
"blocked_reason": null,
|
|
83
|
+
"actual_hours": 7,
|
|
84
|
+
"completed_at": "2026-05-27"
|
|
85
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-06 Doctor visual and JSON contract
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Implemented the Doctor visual/JSON contract with one diagnostics model that drives both human and machine output.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- [x] Human doctor output validated.
|
|
10
|
+
- [x] JSON output validated.
|
|
11
|
+
- [x] Finding parity validated.
|
|
12
|
+
- [x] Exit codes validated.
|
|
13
|
+
- [x] Smoke fixtures validated.
|
|
14
|
+
|
|
15
|
+
## Relevant Changes
|
|
16
|
+
|
|
17
|
+
- Added a shared Doctor command report with stable `schema_version`, status, exit code, checks, suggested fixes, warnings, and errors.
|
|
18
|
+
- Added human output with `Quiver Doctor`, `Checks`, and `Suggested fixes`.
|
|
19
|
+
- Added `doctor --json` output that remains parseable and uses the same findings as the human renderer.
|
|
20
|
+
- Preserved `doctor --fix --dry-run` behavior and kept `doctor --fix --json` machine-clean.
|
|
21
|
+
- Added tests for human hierarchy, JSON parsing, finding parity, and deterministic blocking exit code.
|
|
22
|
+
- Documented the Doctor output contract in the CLI UX guide, command reference, and source-of-truth AI guide.
|
|
23
|
+
|
|
24
|
+
## Pending
|
|
25
|
+
|
|
26
|
+
- Final docs and package readiness are handled by slice-08.
|
|
27
|
+
|
|
28
|
+
## Remaining Risks
|
|
29
|
+
|
|
30
|
+
- The Doctor report schema is intentionally minimal. Future consumers should rely on `schema_version`, `checks`, `suggested_fixes`, `warnings`, `errors`, and `exit_code` rather than terminal formatting.
|
|
31
|
+
- Existing host-environment warnings, such as `gh auth`, still depend on the local machine and can appear in warning checks.
|
|
32
|
+
|
|
33
|
+
## Future Recommendations
|
|
34
|
+
|
|
35
|
+
Consider a future `doctor --fix --interactive` flow only after this diagnostic contract is stable.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-06 Doctor visual and JSON contract
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
The user explicitly wants output shaped like `Quiver Doctor` with checks and suggested fixes. Doctor must remain useful for scripts.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Give `doctor` a clear human format and a stable JSON contract with matching diagnostics.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Human doctor output.
|
|
14
|
+
- JSON doctor output.
|
|
15
|
+
- Exit-code semantics.
|
|
16
|
+
- Doctor fixtures and smoke tests.
|
|
17
|
+
- Docs for doctor output.
|
|
18
|
+
|
|
19
|
+
## Acceptance Criteria
|
|
20
|
+
|
|
21
|
+
- Human output includes `Quiver Doctor`, `Checks`, and `Suggested fixes`.
|
|
22
|
+
- `doctor --json` remains parseable and stable.
|
|
23
|
+
- Human and JSON findings match.
|
|
24
|
+
- Exit codes are deterministic.
|
|
25
|
+
- Smoke doctor fixtures pass.
|
|
26
|
+
|
|
27
|
+
## Plan tecnico resumido
|
|
28
|
+
|
|
29
|
+
Separate diagnostic data from renderers. Use the same findings model for human and JSON output.
|
|
30
|
+
|
|
31
|
+
## Suggested Steps
|
|
32
|
+
|
|
33
|
+
1. Identify current doctor findings data.
|
|
34
|
+
2. Add human renderer using shared UX runtime.
|
|
35
|
+
3. Add or stabilize JSON schema.
|
|
36
|
+
4. Add fixture tests for representative states.
|
|
37
|
+
5. Update docs.
|
|
38
|
+
|
|
39
|
+
## Restrictions
|
|
40
|
+
|
|
41
|
+
- Do not add automatic repair behavior.
|
|
42
|
+
- Do not invoke IA provider in doctor by default.
|
|
43
|
+
- Do not make colors required to understand severity.
|
|
44
|
+
|
|
45
|
+
## Risks
|
|
46
|
+
|
|
47
|
+
- Existing fixture snapshots may be brittle.
|
|
48
|
+
- JSON schema changes can break downstream automation.
|
|
49
|
+
|
|
50
|
+
## Completion Checklist
|
|
51
|
+
|
|
52
|
+
- [ ] Human doctor output validated.
|
|
53
|
+
- [ ] JSON schema validated.
|
|
54
|
+
- [ ] Fixture smoke passes.
|
|
55
|
+
- [ ] Docs updated.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-06-doctor-visual-json-contract",
|
|
3
|
+
"ticket": "QUIVER-30-06",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Doctor visual and JSON contract",
|
|
6
|
+
"objective": "Make doctor output visually clear for humans while preserving stable JSON diagnostics for automation.",
|
|
7
|
+
"description": "Applies the Quiver Doctor output structure with checks, warnings, errors, suggested fixes, exit-code semantics, and JSON parity.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v30-doctor-visual-json-contract",
|
|
12
|
+
"branch_name": "feature/QUIVER-30-06-v30-doctor-visual-json-contract"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/lib/doctor.js",
|
|
16
|
+
"src/create-quiver/index.js",
|
|
17
|
+
"src/create-quiver/lib/cli/**",
|
|
18
|
+
"tests/commands/doctor.test.js",
|
|
19
|
+
"tests/fixtures/doctor/**",
|
|
20
|
+
"scripts/ci/smoke-doctor-fixtures.js",
|
|
21
|
+
"specs/quiver-v30-interactive-cli-ux-agent-selection/**"
|
|
22
|
+
],
|
|
23
|
+
"expected_read_paths": [
|
|
24
|
+
"src/create-quiver/lib/doctor.js",
|
|
25
|
+
"src/create-quiver/index.js",
|
|
26
|
+
"scripts/ci/smoke-doctor-fixtures.js",
|
|
27
|
+
"tests/fixtures/doctor/**",
|
|
28
|
+
"docs/CLI_UX_GUIDE.md"
|
|
29
|
+
],
|
|
30
|
+
"allowed_write_paths": [
|
|
31
|
+
"src/create-quiver/lib/doctor.js",
|
|
32
|
+
"src/create-quiver/index.js",
|
|
33
|
+
"src/create-quiver/lib/cli/**",
|
|
34
|
+
"tests/commands/doctor.test.js",
|
|
35
|
+
"tests/fixtures/doctor/**",
|
|
36
|
+
"scripts/ci/smoke-doctor-fixtures.js",
|
|
37
|
+
"docs/CLI_UX_GUIDE.md",
|
|
38
|
+
"docs/reference/commands.md",
|
|
39
|
+
"README.md",
|
|
40
|
+
"README_FOR_AI.md",
|
|
41
|
+
"specs/quiver-v30-interactive-cli-ux-agent-selection/**"
|
|
42
|
+
],
|
|
43
|
+
"depends_on": [
|
|
44
|
+
"slice-01-cli-ux-runtime-progress-engine"
|
|
45
|
+
],
|
|
46
|
+
"parallel_safe": "after_dependencies",
|
|
47
|
+
"parallel_safe_reason": "Doctor can adopt the shared runtime independently after slice-01.",
|
|
48
|
+
"must": [
|
|
49
|
+
"Render human doctor output with a `Quiver Doctor` heading, `Checks`, and `Suggested fixes` sections.",
|
|
50
|
+
"Preserve a stable JSON schema for doctor diagnostics.",
|
|
51
|
+
"Ensure human and JSON modes report the same underlying findings.",
|
|
52
|
+
"Keep exit codes consistent for ok, warning, blocking error, and internal CLI error.",
|
|
53
|
+
"Add tests for missing docs, missing briefs, warnings, and fix suggestions."
|
|
54
|
+
],
|
|
55
|
+
"not_included": [
|
|
56
|
+
"Adding automatic repairs.",
|
|
57
|
+
"Running Doctor IA provider by default.",
|
|
58
|
+
"Changing project initialization."
|
|
59
|
+
],
|
|
60
|
+
"acceptance": [
|
|
61
|
+
"Human doctor output matches the approved hierarchy.",
|
|
62
|
+
"doctor --json emits parseable stable JSON.",
|
|
63
|
+
"Human and JSON outputs have parity for findings.",
|
|
64
|
+
"Exit codes remain deterministic.",
|
|
65
|
+
"Smoke doctor fixtures pass."
|
|
66
|
+
],
|
|
67
|
+
"tests": [
|
|
68
|
+
"node --test tests/commands/doctor.test.js",
|
|
69
|
+
"npm run smoke:doctor-fixtures",
|
|
70
|
+
"git diff --check"
|
|
71
|
+
],
|
|
72
|
+
"validation_hints": [
|
|
73
|
+
"Do not make doctor visual-only; automation compatibility is part of the slice.",
|
|
74
|
+
"Fixture expected output should avoid brittle spinner frames."
|
|
75
|
+
],
|
|
76
|
+
"estimated_hours": 8,
|
|
77
|
+
"status": "completed",
|
|
78
|
+
"blocked_reason": null,
|
|
79
|
+
"actual_hours": 5,
|
|
80
|
+
"completed_at": "2026-05-27"
|
|
81
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-07 Interactive init and spec create flows
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Implemented guided interactive flows for init and spec creation while keeping default automation unchanged.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- [x] `init --interactive` validated.
|
|
10
|
+
- [x] non-interactive init compatibility validated.
|
|
11
|
+
- [x] `spec create --interactive` validated.
|
|
12
|
+
- [x] no-TTY/CI/JSON fallback validated.
|
|
13
|
+
|
|
14
|
+
## Relevant Changes
|
|
15
|
+
|
|
16
|
+
- Added `init --interactive` guided choices for project mode, methodology, init profile, and optional agent-profile next steps.
|
|
17
|
+
- Enforced the only supported methodology, `wdd-sdd`, through `--methodology` and interactive selectors.
|
|
18
|
+
- Added summaries before persistent writes in interactive init/spec-create flows.
|
|
19
|
+
- Added `spec create --interactive` selectors for methodology, approved technical-plan input, and direct-vs-review write mode.
|
|
20
|
+
- Added no-TTY guardrails so interactive commands fail with explicit flag guidance instead of blocking automation.
|
|
21
|
+
- Documented the interactive flow and methodology flag in CLI docs and source-of-truth guide.
|
|
22
|
+
|
|
23
|
+
## Pending
|
|
24
|
+
|
|
25
|
+
- Full docs and release-readiness evidence are handled by slice-08.
|
|
26
|
+
|
|
27
|
+
## Remaining Risks
|
|
28
|
+
|
|
29
|
+
- The project-mode selector currently maps "solo validar estructura" to Doctor. That is useful and non-destructive, but it still requires the target to have Quiver initialization evidence.
|
|
30
|
+
- `spec create --interactive` presents the currently resolved approved technical plan input; additional historical input selection can be added later if multiple approved inputs become a supported contract.
|
|
31
|
+
|
|
32
|
+
## Future Recommendations
|
|
33
|
+
|
|
34
|
+
Keep the interactive question count small and add more prompts only when real dogfooding shows repeated confusion.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-07 Interactive init and spec create flows
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
The user wants guided selectors for onboarding-style flows, methodology, and spec decisions, but Quiver must stay script-safe.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Add useful interactive flows to `init` and `spec create` without changing default automation behavior.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `init --interactive`
|
|
14
|
+
- `spec create --interactive`
|
|
15
|
+
- methodology selector with `WDD + SDD`
|
|
16
|
+
- write summary before action
|
|
17
|
+
- equivalent non-interactive flags and docs
|
|
18
|
+
|
|
19
|
+
## Acceptance Criteria
|
|
20
|
+
|
|
21
|
+
- `init --interactive` is guided.
|
|
22
|
+
- `init` without `--interactive` is unchanged.
|
|
23
|
+
- `spec create --interactive` lets the human review choices before writes.
|
|
24
|
+
- No prompt opens in CI/no-TTY/JSON.
|
|
25
|
+
- The methodology selector does not invent unsupported options.
|
|
26
|
+
|
|
27
|
+
## Plan tecnico resumido
|
|
28
|
+
|
|
29
|
+
Use the selector infrastructure from slice-02 and keep interactive prompts as explicit opt-in convenience wrappers around existing command contracts.
|
|
30
|
+
|
|
31
|
+
## Suggested Steps
|
|
32
|
+
|
|
33
|
+
1. Identify init/spec-create decision points.
|
|
34
|
+
2. Add selectors behind `--interactive`.
|
|
35
|
+
3. Add summary-before-write behavior.
|
|
36
|
+
4. Add no-TTY/CI fallback errors or defaults.
|
|
37
|
+
5. Add tests with injected prompt answers.
|
|
38
|
+
|
|
39
|
+
## Restrictions
|
|
40
|
+
|
|
41
|
+
- Do not run providers from init.
|
|
42
|
+
- Do not add unsupported methodology choices.
|
|
43
|
+
- Do not make prompts default behavior.
|
|
44
|
+
|
|
45
|
+
## Risks
|
|
46
|
+
|
|
47
|
+
- Interactive init can become too long if too many questions are added.
|
|
48
|
+
- Spec create must not re-open already approved plan gates incorrectly.
|
|
49
|
+
|
|
50
|
+
## Completion Checklist
|
|
51
|
+
|
|
52
|
+
- [ ] Interactive init tested.
|
|
53
|
+
- [ ] Non-interactive init compatibility tested.
|
|
54
|
+
- [ ] Interactive spec create tested.
|
|
55
|
+
- [ ] Methodology selector documented.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-07-interactive-init-spec-create",
|
|
3
|
+
"ticket": "QUIVER-30-07",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Interactive init and spec create flows",
|
|
6
|
+
"objective": "Add guided interactive selection to init and spec create without making prompts mandatory or breaking automation.",
|
|
7
|
+
"description": "Applies the selector contract to project onboarding and spec package creation, including methodology, profile defaults, approved plan selection, and review mode.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v30-interactive-init-spec-create",
|
|
12
|
+
"branch_name": "feature/QUIVER-30-07-v30-interactive-init-spec-create"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/index.js",
|
|
16
|
+
"src/create-quiver/commands/spec.js",
|
|
17
|
+
"src/create-quiver/lib/init-layout.js",
|
|
18
|
+
"src/create-quiver/lib/init-docs.js",
|
|
19
|
+
"src/create-quiver/lib/cli/**",
|
|
20
|
+
"tests/commands/init-*.test.js",
|
|
21
|
+
"tests/commands/spec-*.test.js",
|
|
22
|
+
"specs/quiver-v30-interactive-cli-ux-agent-selection/**"
|
|
23
|
+
],
|
|
24
|
+
"expected_read_paths": [
|
|
25
|
+
"src/create-quiver/index.js",
|
|
26
|
+
"src/create-quiver/commands/spec.js",
|
|
27
|
+
"src/create-quiver/lib/init-layout.js",
|
|
28
|
+
"src/create-quiver/lib/init-docs.js",
|
|
29
|
+
"tests/commands/init-profiles.test.js",
|
|
30
|
+
"tests/commands/spec-create.test.js"
|
|
31
|
+
],
|
|
32
|
+
"allowed_write_paths": [
|
|
33
|
+
"src/create-quiver/index.js",
|
|
34
|
+
"src/create-quiver/commands/spec.js",
|
|
35
|
+
"src/create-quiver/lib/init-layout.js",
|
|
36
|
+
"src/create-quiver/lib/init-docs.js",
|
|
37
|
+
"src/create-quiver/lib/cli/**",
|
|
38
|
+
"tests/commands/init-*.test.js",
|
|
39
|
+
"tests/commands/spec-*.test.js",
|
|
40
|
+
"docs/CLI_UX_GUIDE.md",
|
|
41
|
+
"docs/reference/commands.md",
|
|
42
|
+
"README.md",
|
|
43
|
+
"README_FOR_AI.md",
|
|
44
|
+
"specs/quiver-v30-interactive-cli-ux-agent-selection/**"
|
|
45
|
+
],
|
|
46
|
+
"depends_on": [
|
|
47
|
+
"slice-01-cli-ux-runtime-progress-engine",
|
|
48
|
+
"slice-02-agent-profile-selection-selectors"
|
|
49
|
+
],
|
|
50
|
+
"parallel_safe": "after_dependencies",
|
|
51
|
+
"parallel_safe_reason": "Init/spec-create interaction can be implemented after UX and selector contracts are available.",
|
|
52
|
+
"must": [
|
|
53
|
+
"Add `init --interactive` prompts for project mode, methodology, and optional default agent profile guidance.",
|
|
54
|
+
"Show only real methodology option: WDD + SDD.",
|
|
55
|
+
"Keep init non-interactive behavior unchanged without --interactive.",
|
|
56
|
+
"Add `spec create --interactive` selectors for approved inputs and review choices where appropriate.",
|
|
57
|
+
"Show summary before writes in interactive mode.",
|
|
58
|
+
"Provide equivalent flags for automation."
|
|
59
|
+
],
|
|
60
|
+
"not_included": [
|
|
61
|
+
"Adding unsupported methodologies.",
|
|
62
|
+
"Changing default init output shape beyond documented options.",
|
|
63
|
+
"Running provider CLIs from init."
|
|
64
|
+
],
|
|
65
|
+
"acceptance": [
|
|
66
|
+
"init --interactive is guided and safe.",
|
|
67
|
+
"init without --interactive remains script-compatible.",
|
|
68
|
+
"spec create --interactive shows reviewable choices before writes.",
|
|
69
|
+
"No prompt opens in CI/no-TTY/JSON.",
|
|
70
|
+
"Methodology selector lists WDD + SDD only."
|
|
71
|
+
],
|
|
72
|
+
"tests": [
|
|
73
|
+
"node --test tests/commands/init-profiles.test.js tests/commands/spec-create.test.js",
|
|
74
|
+
"git diff --check"
|
|
75
|
+
],
|
|
76
|
+
"validation_hints": [
|
|
77
|
+
"Inject prompt responses in tests.",
|
|
78
|
+
"Do not prompt for values that existing flags already provide unless --interactive is explicit."
|
|
79
|
+
],
|
|
80
|
+
"estimated_hours": 8,
|
|
81
|
+
"status": "completed",
|
|
82
|
+
"blocked_reason": null,
|
|
83
|
+
"actual_hours": 6,
|
|
84
|
+
"completed_at": "2026-05-27"
|
|
85
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-08 Tests, docs, cross-platform smokes, and release readiness
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed the v30 release-readiness pass: synchronized docs, updated generated command templates, recorded final evidence, validated the full suite and smoke commands, and verified package dry-run readiness without publishing to npm.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- [x] Full test suite passed.
|
|
10
|
+
- [x] Smoke suites passed.
|
|
11
|
+
- [x] Package smoke passed.
|
|
12
|
+
- [x] npm pack dry-run passed.
|
|
13
|
+
- [x] Docs synchronized.
|
|
14
|
+
- [x] Evidence report completed.
|
|
15
|
+
|
|
16
|
+
## Relevant Changes
|
|
17
|
+
|
|
18
|
+
- Updated release-facing docs: `README.md`, `README_FOR_AI.md`, `ROADMAP.md`, `CHANGELOG.md`, and `docs/COMMANDS.md.template`.
|
|
19
|
+
- Updated spec state: `STATUS.md`, `EVIDENCE_REPORT.md`, `pr.md`, and this slice closure metadata.
|
|
20
|
+
- Confirmed that v30 is release-ready but not published.
|
|
21
|
+
|
|
22
|
+
## Pending
|
|
23
|
+
|
|
24
|
+
- Open PR if requested by the human.
|
|
25
|
+
- Publish the npm package only after explicit release approval and npm authentication are confirmed.
|
|
26
|
+
|
|
27
|
+
## Remaining Risks
|
|
28
|
+
|
|
29
|
+
- Live provider smoke tests were not run against every external IA CLI because they depend on locally installed/authenticated providers.
|
|
30
|
+
- Terminal rendering can vary by shell and OS, so final release notes should still mention that machine-readable modes remain the source of truth for scripts.
|
|
31
|
+
|
|
32
|
+
## Future Recommendations
|
|
33
|
+
|
|
34
|
+
Publish only after the human confirms release intent and npm authentication is ready.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-08 Tests, docs, cross-platform smokes, and release readiness
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
This slice closes v30. It must prove that the UX improvements work for humans without breaking automation or package publication.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Validate the full v30 implementation and prepare release-ready evidence.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Full test suite.
|
|
14
|
+
- Smoke suites.
|
|
15
|
+
- Package smoke and `npm pack --dry-run`.
|
|
16
|
+
- Docs, README, README_FOR_AI, ROADMAP, CHANGELOG.
|
|
17
|
+
- Final evidence, status, and PR body updates.
|
|
18
|
+
|
|
19
|
+
## Acceptance Criteria
|
|
20
|
+
|
|
21
|
+
- Full tests pass.
|
|
22
|
+
- Smoke suites pass.
|
|
23
|
+
- Package/tarball checks pass.
|
|
24
|
+
- Human vs machine output docs are accurate.
|
|
25
|
+
- Cross-platform usage is documented.
|
|
26
|
+
- Final evidence is recorded.
|
|
27
|
+
|
|
28
|
+
## Plan tecnico resumido
|
|
29
|
+
|
|
30
|
+
Treat this as release readiness: no new product behavior unless it fixes validation gaps from earlier slices.
|
|
31
|
+
|
|
32
|
+
## Suggested Steps
|
|
33
|
+
|
|
34
|
+
1. Audit all accepted criteria against implementation.
|
|
35
|
+
2. Add missing tests or fixtures.
|
|
36
|
+
3. Update docs and generated templates.
|
|
37
|
+
4. Run full validations.
|
|
38
|
+
5. Update evidence/status/pr body.
|
|
39
|
+
6. Prepare package release notes.
|
|
40
|
+
|
|
41
|
+
## Restrictions
|
|
42
|
+
|
|
43
|
+
- Do not publish npm without explicit user request.
|
|
44
|
+
- Do not expand scope beyond v30 acceptance criteria.
|
|
45
|
+
- Do not leave failing validations unrecorded.
|
|
46
|
+
|
|
47
|
+
## Risks
|
|
48
|
+
|
|
49
|
+
- Cross-platform behavior can be hard to prove fully on one OS.
|
|
50
|
+
- Package tarball may expose missing dependencies or unintended files.
|
|
51
|
+
|
|
52
|
+
## Completion Checklist
|
|
53
|
+
|
|
54
|
+
- [ ] Full tests pass.
|
|
55
|
+
- [ ] Smoke suites pass.
|
|
56
|
+
- [ ] Package smoke passes.
|
|
57
|
+
- [ ] Docs updated.
|
|
58
|
+
- [ ] Evidence report updated.
|
|
59
|
+
- [ ] PR body ready.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-08-tests-docs-cross-platform-release",
|
|
3
|
+
"ticket": "QUIVER-30-08",
|
|
4
|
+
"type": "release",
|
|
5
|
+
"title": "Tests, docs, cross-platform smokes, and release readiness",
|
|
6
|
+
"objective": "Close the v30 spec with comprehensive tests, documentation, cross-platform guidance, package readiness, and final evidence.",
|
|
7
|
+
"description": "Validates the complete UX/selector/model/progress contract across human and machine modes before publishing a package.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v30-tests-docs-cross-platform-release",
|
|
12
|
+
"branch_name": "feature/QUIVER-30-08-v30-tests-docs-cross-platform-release"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"README.md",
|
|
16
|
+
"README_FOR_AI.md",
|
|
17
|
+
"ROADMAP.md",
|
|
18
|
+
"CHANGELOG.md",
|
|
19
|
+
"docs/**",
|
|
20
|
+
"tests/**",
|
|
21
|
+
"scripts/ci/**",
|
|
22
|
+
"package.json",
|
|
23
|
+
"package-lock.json",
|
|
24
|
+
"specs/quiver-v30-interactive-cli-ux-agent-selection/**"
|
|
25
|
+
],
|
|
26
|
+
"expected_read_paths": [
|
|
27
|
+
"SPEC.md",
|
|
28
|
+
"README_FOR_AI.md",
|
|
29
|
+
"docs/CLI_UX_GUIDE.md",
|
|
30
|
+
"docs/reference/commands.md",
|
|
31
|
+
"scripts/release-quiver.sh",
|
|
32
|
+
"scripts/package-quiver.sh",
|
|
33
|
+
"tests/**"
|
|
34
|
+
],
|
|
35
|
+
"allowed_write_paths": [
|
|
36
|
+
"README.md",
|
|
37
|
+
"README_FOR_AI.md",
|
|
38
|
+
"ROADMAP.md",
|
|
39
|
+
"CHANGELOG.md",
|
|
40
|
+
"docs/**",
|
|
41
|
+
"tests/**",
|
|
42
|
+
"scripts/ci/**",
|
|
43
|
+
"package.json",
|
|
44
|
+
"package-lock.json",
|
|
45
|
+
"specs/quiver-v30-interactive-cli-ux-agent-selection/**"
|
|
46
|
+
],
|
|
47
|
+
"depends_on": [
|
|
48
|
+
"slice-04-planner-ia-progress-flows",
|
|
49
|
+
"slice-05-executor-pr-progress-flows",
|
|
50
|
+
"slice-06-doctor-visual-json-contract",
|
|
51
|
+
"slice-07-interactive-init-spec-create"
|
|
52
|
+
],
|
|
53
|
+
"parallel_safe": "no",
|
|
54
|
+
"parallel_safe_reason": "Final validation and docs depend on every previous slice.",
|
|
55
|
+
"must": [
|
|
56
|
+
"Add or update docs for the UX standard, agent selectors, model support, doctor output, and command examples.",
|
|
57
|
+
"Verify human output tests and machine output tests cover the accepted criteria.",
|
|
58
|
+
"Add cross-platform guidance for macOS, Linux, Windows PowerShell, Git Bash, and WSL where commands include paths or SSH examples.",
|
|
59
|
+
"Run full tests and smoke suites.",
|
|
60
|
+
"Run package safety and npm pack dry-run.",
|
|
61
|
+
"Update EVIDENCE_REPORT.md, STATUS.md, and pr.md with final evidence."
|
|
62
|
+
],
|
|
63
|
+
"not_included": [
|
|
64
|
+
"Publishing npm without explicit release step.",
|
|
65
|
+
"Adding new product scope beyond approved slices.",
|
|
66
|
+
"Skipping failed tests to reach release."
|
|
67
|
+
],
|
|
68
|
+
"acceptance": [
|
|
69
|
+
"Full test suite passes.",
|
|
70
|
+
"Smoke suites pass.",
|
|
71
|
+
"Package smoke and npm pack dry-run pass.",
|
|
72
|
+
"Docs clearly explain human vs machine output and selectors.",
|
|
73
|
+
"README and README_FOR_AI stay synchronized with implemented behavior.",
|
|
74
|
+
"Final evidence is recorded."
|
|
75
|
+
],
|
|
76
|
+
"tests": [
|
|
77
|
+
"node --test tests/**/*.test.js",
|
|
78
|
+
"npm run smoke:create-quiver",
|
|
79
|
+
"npm run smoke:doctor-fixtures",
|
|
80
|
+
"npm run smoke:guided-workflow",
|
|
81
|
+
"npm run package:quiver",
|
|
82
|
+
"npm pack --dry-run",
|
|
83
|
+
"git diff --check",
|
|
84
|
+
"node bin/create-quiver.js spec validate specs/quiver-v30-interactive-cli-ux-agent-selection"
|
|
85
|
+
],
|
|
86
|
+
"validation_hints": [
|
|
87
|
+
"Validate `npx create-quiver@file:<tarball>` behavior if package smoke supports it.",
|
|
88
|
+
"Document any manual live-provider smoke separately from automated tests."
|
|
89
|
+
],
|
|
90
|
+
"estimated_hours": 8,
|
|
91
|
+
"status": "completed",
|
|
92
|
+
"blocked_reason": null,
|
|
93
|
+
"actual_hours": 5,
|
|
94
|
+
"completed_at": "2026-05-27"
|
|
95
|
+
}
|