create-quiver 0.14.0 → 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 +27 -0
- package/README.md +187 -518
- package/README_FOR_AI.md +39 -27
- package/ROADMAP.md +11 -0
- package/assets/quiver-wordmark.svg +22 -0
- package/docs/AI_CONTEXT.md.template +2 -0
- package/docs/AI_ONBOARDING_PROMPT.md.template +9 -1
- package/docs/CLI_UX_GUIDE.md +185 -0
- package/docs/COMMANDS.md.template +22 -3
- package/docs/GITFLOW_PR_GUIDE.md +70 -0
- package/docs/getting-started/linux.md +84 -0
- package/docs/getting-started/macos.md +85 -0
- package/docs/getting-started/windows-git-bash-wsl.md +78 -0
- package/docs/getting-started/windows-powershell.md +96 -0
- package/docs/reference/commands.md +98 -0
- package/docs/workflows/existing-project.md +131 -0
- package/docs/workflows/full-ai-spec-to-pr.md +311 -0
- package/docs/workflows/legacy-quiver-project.md +102 -0
- package/docs/workflows/new-project.md +76 -0
- package/package.json +5 -1
- package/specs/quiver-v29-planner-prepare-context-cli-ux/EVIDENCE_REPORT.md +163 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/EXECUTION_PLAN.md +72 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/SPEC.md +173 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/STATUS.md +34 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/pr.md +95 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-00-cli-ux-spec-foundation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-00-cli-ux-spec-foundation/EXECUTION_BRIEF.md +45 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-00-cli-ux-spec-foundation/slice.json +58 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-01-cli-ux-primitives-theme/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-01-cli-ux-primitives-theme/EXECUTION_BRIEF.md +49 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-01-cli-ux-primitives-theme/slice.json +75 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-02-planner-context-proposal-contract/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-02-planner-context-proposal-contract/EXECUTION_BRIEF.md +47 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-02-planner-context-proposal-contract/slice.json +71 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-03-prepare-context-planner-review-flow/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-03-prepare-context-planner-review-flow/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-03-prepare-context-planner-review-flow/slice.json +82 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-04-ux-flag-matrix-compatibility/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-04-ux-flag-matrix-compatibility/EXECUTION_BRIEF.md +46 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-04-ux-flag-matrix-compatibility/slice.json +73 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-05-progressive-command-adoption/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-05-progressive-command-adoption/EXECUTION_BRIEF.md +46 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-05-progressive-command-adoption/slice.json +83 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-06-docs-tests-smoke-readiness/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-06-docs-tests-smoke-readiness/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-06-docs-tests-smoke-readiness/slice.json +95 -0
- 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 +809 -71
- package/src/create-quiver/commands/spec.js +167 -5
- package/src/create-quiver/index.js +582 -71
- package/src/create-quiver/lib/agent-profiles.js +111 -10
- package/src/create-quiver/lib/ai/context-proposal.js +389 -0
- package/src/create-quiver/lib/ai/context-proposal.schema.js +31 -0
- 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/editor.js +118 -0
- package/src/create-quiver/lib/cli/selectors.js +107 -0
- package/src/create-quiver/lib/cli/theme.js +103 -0
- package/src/create-quiver/lib/cli/ux-flags.js +169 -0
- package/src/create-quiver/lib/cli/ux.js +225 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-02 Planner context proposal contract
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed a strict planner context proposal contract for future `ai prepare-context --with-planner` usage.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- Valid structured JSON and fenced JSON planner outputs parse into a normalized docs-only write plan.
|
|
10
|
+
- Unsafe paths are rejected before writes, including product code, dependency/lockfiles, absolute paths, traversal paths, generated outputs, runtime/build config, `.quiver/`, and unapproved docs.
|
|
11
|
+
- Schema validation uses `zod` and reports actionable issues with safe next steps.
|
|
12
|
+
- Invalid raw output can be persisted as a redacted run artifact under `.quiver/runs/<run-id>/raw/`.
|
|
13
|
+
|
|
14
|
+
## Relevant Changes
|
|
15
|
+
|
|
16
|
+
- Added `src/create-quiver/lib/ai/context-proposal.schema.js`.
|
|
17
|
+
- Added `src/create-quiver/lib/ai/context-proposal.js`.
|
|
18
|
+
- Added valid, fenced, malformed, product-code, absolute-path, and traversal fixtures under `tests/fixtures/ai-context-proposals/`.
|
|
19
|
+
- Added focused unit tests in `tests/lib/ai-context-proposal.test.js`.
|
|
20
|
+
|
|
21
|
+
## Pending Work
|
|
22
|
+
|
|
23
|
+
- `ai prepare-context` must consume this contract in a later slice.
|
|
24
|
+
|
|
25
|
+
## Remaining Risks
|
|
26
|
+
|
|
27
|
+
- Planner output compatibility must be tested with real provider transcripts later.
|
|
28
|
+
- The allowlist intentionally matches current `prepare-context` docs; future docs must be added explicitly to avoid unsafe broadening.
|
|
29
|
+
|
|
30
|
+
## Future Recommendations
|
|
31
|
+
|
|
32
|
+
- Keep the schema versioned if external agents or dashboards start consuming it.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-02 Planner context proposal contract
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Planner-assisted `ai prepare-context` needs a strict contract before any provider output can affect project docs.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Create a safe parser and schema for planner-generated documentation proposals.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Add proposal schema.
|
|
14
|
+
- Add proposal parser/normalizer.
|
|
15
|
+
- Add docs-only allowlist.
|
|
16
|
+
- Add path safety checks.
|
|
17
|
+
- Add valid and invalid fixtures.
|
|
18
|
+
|
|
19
|
+
## Acceptance Criteria
|
|
20
|
+
|
|
21
|
+
- Unsafe planner output is rejected before writes.
|
|
22
|
+
- Valid planner output becomes a normalized docs-only plan.
|
|
23
|
+
- Errors explain what failed and how to continue safely.
|
|
24
|
+
|
|
25
|
+
## Suggested Steps
|
|
26
|
+
|
|
27
|
+
1. Define proposal JSON shape.
|
|
28
|
+
2. Add `zod` schema validation.
|
|
29
|
+
3. Add path normalization and allowlist checks.
|
|
30
|
+
4. Add fixtures for valid, invalid, product-code, absolute-path, traversal, and malformed outputs.
|
|
31
|
+
5. Add unit tests.
|
|
32
|
+
|
|
33
|
+
## Restrictions
|
|
34
|
+
|
|
35
|
+
- Do not call providers in this slice.
|
|
36
|
+
- Do not modify `runPrepareContext` write behavior yet.
|
|
37
|
+
|
|
38
|
+
## Risks
|
|
39
|
+
|
|
40
|
+
- Too-strict parsing can reject useful planner output; prefer clear repair guidance over unsafe fallback.
|
|
41
|
+
|
|
42
|
+
## Completion Checklist
|
|
43
|
+
|
|
44
|
+
- [ ] Valid fixtures parse.
|
|
45
|
+
- [ ] Unsafe fixtures fail.
|
|
46
|
+
- [ ] Proposal errors are actionable.
|
|
47
|
+
- [ ] No docs are written by this slice.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-02-planner-context-proposal-contract",
|
|
3
|
+
"ticket": "QUIVER-29-02",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Planner context proposal contract",
|
|
6
|
+
"objective": "Define and validate the structured proposal format used when a planner IA suggests context documentation updates.",
|
|
7
|
+
"description": "Adds the parser, schema, path safety, allowlist checks, and diff-ready internal model for planner-generated context proposals.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v29-planner-context-proposal-contract",
|
|
12
|
+
"branch_name": "feature/QUIVER-29-02-v29-planner-context-proposal-contract"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/lib/ai/context-proposal.js",
|
|
16
|
+
"src/create-quiver/lib/ai/context-proposal.schema.js",
|
|
17
|
+
"src/create-quiver/lib/ai/onboarding-template.js",
|
|
18
|
+
"tests/lib/ai-context-proposal.test.js",
|
|
19
|
+
"tests/fixtures/ai-context-proposals/**",
|
|
20
|
+
"specs/quiver-v29-planner-prepare-context-cli-ux/**"
|
|
21
|
+
],
|
|
22
|
+
"expected_read_paths": [
|
|
23
|
+
"src/create-quiver/lib/ai/onboarding-template.js",
|
|
24
|
+
"src/create-quiver/lib/ai/safety.js",
|
|
25
|
+
"src/create-quiver/commands/ai.js",
|
|
26
|
+
"tests/commands/ai-onboard.test.js",
|
|
27
|
+
"tests/lib/ai-context-packs.test.js"
|
|
28
|
+
],
|
|
29
|
+
"allowed_write_paths": [
|
|
30
|
+
"src/create-quiver/lib/ai/context-proposal.js",
|
|
31
|
+
"src/create-quiver/lib/ai/context-proposal.schema.js",
|
|
32
|
+
"src/create-quiver/lib/ai/onboarding-template.js",
|
|
33
|
+
"tests/lib/ai-context-proposal.test.js",
|
|
34
|
+
"tests/fixtures/ai-context-proposals/**",
|
|
35
|
+
"specs/quiver-v29-planner-prepare-context-cli-ux/**"
|
|
36
|
+
],
|
|
37
|
+
"depends_on": [
|
|
38
|
+
"slice-01-cli-ux-primitives-theme"
|
|
39
|
+
],
|
|
40
|
+
"parallel_safe": "after_dependencies",
|
|
41
|
+
"parallel_safe_reason": "Can run in parallel with slice-04 if both avoid central CLI parser conflicts.",
|
|
42
|
+
"must": [
|
|
43
|
+
"Validate planner proposals with zod.",
|
|
44
|
+
"Accept structured JSON or fenced JSON output when safe.",
|
|
45
|
+
"Reject paths outside the repo, path traversal, absolute writes, product code, dependencies, lockfiles, build files, generated files, and runtime config.",
|
|
46
|
+
"Produce a normalized docs-only write plan that existing prepare-context logic can consume.",
|
|
47
|
+
"Persist invalid raw output as an artifact only when safe and redacted."
|
|
48
|
+
],
|
|
49
|
+
"not_included": [
|
|
50
|
+
"Invoking provider CLIs.",
|
|
51
|
+
"Writing docs from planner proposals.",
|
|
52
|
+
"Interactive editor review."
|
|
53
|
+
],
|
|
54
|
+
"acceptance": [
|
|
55
|
+
"Valid planner proposal fixtures parse into a normalized internal model.",
|
|
56
|
+
"Invalid or unsafe proposals fail before writes.",
|
|
57
|
+
"Allowed docs-only paths are explicit and tested.",
|
|
58
|
+
"The parser reports actionable errors with next safe commands."
|
|
59
|
+
],
|
|
60
|
+
"tests": [
|
|
61
|
+
"node --test tests/lib/ai-context-proposal.test.js"
|
|
62
|
+
],
|
|
63
|
+
"validation_hints": [
|
|
64
|
+
"Treat planner output as untrusted input.",
|
|
65
|
+
"Keep schema and allowlist close to the proposal parser."
|
|
66
|
+
],
|
|
67
|
+
"estimated_hours": 8,
|
|
68
|
+
"actual_hours": 3,
|
|
69
|
+
"status": "completed",
|
|
70
|
+
"completed_at": "2026-05-26"
|
|
71
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-03 Planner-assisted prepare-context review flow
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed explicit planner-assisted context preparation for `ai prepare-context`.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- Default deterministic `ai prepare-context` behavior remains unchanged and existing tests still pass.
|
|
10
|
+
- `--with-planner --dry-run` reports provider invocation, candidate docs, allowed paths, and writes nothing.
|
|
11
|
+
- `--with-planner --print-prompt` prints the exact planner prompt without provider auth or writes.
|
|
12
|
+
- Live `--with-planner` invokes the provider, validates the proposal contract, creates snapshots, and writes only allowed docs.
|
|
13
|
+
- Provider failures, invalid planner output, review cancellation, and declined interactive approval leave docs untouched.
|
|
14
|
+
- `--review` writes a proposal artifact, opens or uses the editor flow, and revalidates edited JSON before writing.
|
|
15
|
+
|
|
16
|
+
## Relevant Changes
|
|
17
|
+
|
|
18
|
+
- Extended `src/create-quiver/commands/ai.js` with planner prompt building, dry-run/prompt-only reports, provider execution, proposal review, interactive confirmation, and planner write integration.
|
|
19
|
+
- Updated `src/create-quiver/index.js` to forward planner UX flags/options into `runPrepareContext`.
|
|
20
|
+
- Added `tests/commands/ai-prepare-context-planner.test.js`.
|
|
21
|
+
|
|
22
|
+
## Pending Work
|
|
23
|
+
|
|
24
|
+
- Progressive command adoption should reuse this pattern.
|
|
25
|
+
|
|
26
|
+
## Remaining Risks
|
|
27
|
+
|
|
28
|
+
- Real provider outputs may need fixture updates after dogfooding.
|
|
29
|
+
- Review mode uses a temporary JSON artifact; future UX can make this artifact easier to discover or persist under run state when useful.
|
|
30
|
+
|
|
31
|
+
## Future Recommendations
|
|
32
|
+
|
|
33
|
+
- Consider a future `ai describe-project` alias only if users still find `prepare-context --with-planner` unclear.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-03 Planner-assisted prepare-context review flow
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
The deterministic `ai prepare-context` path must remain default. Planner-assisted mode is opt-in and must never bypass docs-only safety.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Implement `ai prepare-context --with-planner` with dry-run, prompt printing, review, and interactive support.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Parse new flags for `ai prepare-context`.
|
|
14
|
+
- Build planner prompt from context pack and current draft plan.
|
|
15
|
+
- Invoke provider only when not dry-run/print-prompt.
|
|
16
|
+
- Validate planner proposal.
|
|
17
|
+
- Snapshot and write docs-only changes.
|
|
18
|
+
- Add editor review flow.
|
|
19
|
+
|
|
20
|
+
## Acceptance Criteria
|
|
21
|
+
|
|
22
|
+
- Existing deterministic behavior stays compatible.
|
|
23
|
+
- Planner mode is explicit.
|
|
24
|
+
- No partial writes on provider, validation, editor, or snapshot failure.
|
|
25
|
+
- Human output has clear next safe commands.
|
|
26
|
+
|
|
27
|
+
## Suggested Steps
|
|
28
|
+
|
|
29
|
+
1. Extend CLI args for `ai prepare-context`.
|
|
30
|
+
2. Add planner prompt builder or reuse onboarding prompt pieces.
|
|
31
|
+
3. Add dry-run and print-prompt paths.
|
|
32
|
+
4. Add provider execution path.
|
|
33
|
+
5. Add proposal validation and write integration.
|
|
34
|
+
6. Add review flow and tests.
|
|
35
|
+
|
|
36
|
+
## Restrictions
|
|
37
|
+
|
|
38
|
+
- Do not allow product code writes.
|
|
39
|
+
- Do not make planner mode default.
|
|
40
|
+
- Do not require interactive prompts for automation.
|
|
41
|
+
|
|
42
|
+
## Risks
|
|
43
|
+
|
|
44
|
+
- Combining provider execution, review, and writes can create partial-state bugs unless staged carefully.
|
|
45
|
+
|
|
46
|
+
## Completion Checklist
|
|
47
|
+
|
|
48
|
+
- [ ] Default mode unchanged.
|
|
49
|
+
- [ ] Planner dry-run and print-prompt tested.
|
|
50
|
+
- [ ] Provider failure tested.
|
|
51
|
+
- [ ] Review cancellation tested.
|
|
52
|
+
- [ ] Snapshot and docs-only write tested.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-03-prepare-context-planner-review-flow",
|
|
3
|
+
"ticket": "QUIVER-29-03",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Planner-assisted prepare-context review flow",
|
|
6
|
+
"objective": "Implement `ai prepare-context --with-planner` with dry-run, print-prompt, review, interactive, docs-only writes, snapshots, and safe fallback.",
|
|
7
|
+
"description": "Extends the current deterministic prepare-context command while preserving its default behavior.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v29-prepare-context-planner-review-flow",
|
|
12
|
+
"branch_name": "feature/QUIVER-29-03-v29-prepare-context-planner-review-flow"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/index.js",
|
|
16
|
+
"src/create-quiver/commands/ai.js",
|
|
17
|
+
"src/create-quiver/lib/ai/onboarding-template.js",
|
|
18
|
+
"src/create-quiver/lib/ai/context-proposal.js",
|
|
19
|
+
"src/create-quiver/lib/ai/artifacts.js",
|
|
20
|
+
"tests/commands/ai-onboard.test.js",
|
|
21
|
+
"tests/commands/ai-prepare-context-planner.test.js",
|
|
22
|
+
"specs/quiver-v29-planner-prepare-context-cli-ux/**"
|
|
23
|
+
],
|
|
24
|
+
"expected_read_paths": [
|
|
25
|
+
"src/create-quiver/index.js",
|
|
26
|
+
"src/create-quiver/commands/ai.js",
|
|
27
|
+
"src/create-quiver/lib/ai/**",
|
|
28
|
+
"tests/commands/ai-onboard.test.js",
|
|
29
|
+
"tests/commands/ai-plan.test.js"
|
|
30
|
+
],
|
|
31
|
+
"allowed_write_paths": [
|
|
32
|
+
"src/create-quiver/index.js",
|
|
33
|
+
"src/create-quiver/commands/ai.js",
|
|
34
|
+
"src/create-quiver/lib/ai/onboarding-template.js",
|
|
35
|
+
"src/create-quiver/lib/ai/context-proposal.js",
|
|
36
|
+
"src/create-quiver/lib/ai/artifacts.js",
|
|
37
|
+
"tests/commands/ai-onboard.test.js",
|
|
38
|
+
"tests/commands/ai-prepare-context-planner.test.js",
|
|
39
|
+
"specs/quiver-v29-planner-prepare-context-cli-ux/**"
|
|
40
|
+
],
|
|
41
|
+
"depends_on": [
|
|
42
|
+
"slice-02-planner-context-proposal-contract",
|
|
43
|
+
"slice-04-ux-flag-matrix-compatibility"
|
|
44
|
+
],
|
|
45
|
+
"parallel_safe": "no",
|
|
46
|
+
"parallel_safe_reason": "Main command integration touches central AI command behavior and should run after contract/flag guardrails are stable.",
|
|
47
|
+
"must": [
|
|
48
|
+
"Keep current prepare-context behavior as default.",
|
|
49
|
+
"Add --with-planner as explicit planner-assisted mode.",
|
|
50
|
+
"Support --print-prompt without provider auth or writes.",
|
|
51
|
+
"Support --dry-run without provider execution or writes.",
|
|
52
|
+
"Support --review with editor review and revalidation.",
|
|
53
|
+
"Support --interactive only in TTY and with non-interactive flag equivalents.",
|
|
54
|
+
"Create snapshots before writes.",
|
|
55
|
+
"Fallback safely to deterministic mode guidance when planner fails."
|
|
56
|
+
],
|
|
57
|
+
"not_included": [
|
|
58
|
+
"Applying UX flags to unrelated commands.",
|
|
59
|
+
"Allowing planner writes outside context docs.",
|
|
60
|
+
"Changing `analyze` behavior."
|
|
61
|
+
],
|
|
62
|
+
"acceptance": [
|
|
63
|
+
"Default prepare-context tests still pass.",
|
|
64
|
+
"--with-planner --dry-run reports invocation and candidate docs without writes.",
|
|
65
|
+
"--with-planner --print-prompt prints exact prompt and exits without provider auth.",
|
|
66
|
+
"--with-planner --review opens/uses editor flow and revalidates edited proposal.",
|
|
67
|
+
"Provider failure and invalid planner output produce no partial writes.",
|
|
68
|
+
"Docs-only snapshots are created before live writes."
|
|
69
|
+
],
|
|
70
|
+
"tests": [
|
|
71
|
+
"node --test tests/commands/ai-onboard.test.js tests/commands/ai-prepare-context-planner.test.js",
|
|
72
|
+
"node --test tests/lib/ai-context-proposal.test.js"
|
|
73
|
+
],
|
|
74
|
+
"validation_hints": [
|
|
75
|
+
"Use injected provider/editor functions in tests.",
|
|
76
|
+
"Verify no product-code writes through path allowlist tests."
|
|
77
|
+
],
|
|
78
|
+
"estimated_hours": 10,
|
|
79
|
+
"actual_hours": 5,
|
|
80
|
+
"status": "completed",
|
|
81
|
+
"completed_at": "2026-05-26"
|
|
82
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-04 UX flag matrix and compatibility guardrails
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed centralized UX flag support and early compatibility validation.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- `--with-planner`, `--interactive`, and `--review` support is centralized in `src/create-quiver/lib/cli/ux-flags.js`.
|
|
10
|
+
- Unsupported UX flags fail before command dispatch and before side effects.
|
|
11
|
+
- Incompatible combinations such as `--json --interactive` and `--json --review` fail before command dispatch.
|
|
12
|
+
- `ai pr` supports `--interactive` and `--review`, while rejecting `--with-planner`.
|
|
13
|
+
- Read-only commands such as `flow`, `ai inspect`, and `ai export` reject unsupported UX flags.
|
|
14
|
+
- Existing `plan --json` output remains parseable when UX flags are not requested.
|
|
15
|
+
|
|
16
|
+
## Relevant Changes
|
|
17
|
+
|
|
18
|
+
- Added `src/create-quiver/lib/cli/ux-flags.js`.
|
|
19
|
+
- Updated `src/create-quiver/index.js` to parse UX flags, validate them early, document them in help, and forward supported values to future command handlers.
|
|
20
|
+
- Added `tests/commands/ux-flags.test.js`.
|
|
21
|
+
|
|
22
|
+
## Pending Work
|
|
23
|
+
|
|
24
|
+
- Later slices should rely on this matrix instead of ad hoc flag behavior.
|
|
25
|
+
- `slice-03` must implement actual `ai prepare-context --with-planner` behavior now that flags are accepted and forwarded.
|
|
26
|
+
|
|
27
|
+
## Remaining Risks
|
|
28
|
+
|
|
29
|
+
- Command help and docs must stay aligned with this matrix.
|
|
30
|
+
- Some supported flags are forwarded before their command behavior exists; final release readiness depends on `slice-03` and `slice-05` completing before merge.
|
|
31
|
+
|
|
32
|
+
## Future Recommendations
|
|
33
|
+
|
|
34
|
+
- Consider generating docs/reference command flag tables from the matrix in a future spec.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-04 UX flag matrix and compatibility guardrails
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Quiver needs standard UX flags without making every command accept every flag.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Centralize and enforce command support for `--with-planner`, `--interactive`, and `--review`.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Add a command/flag matrix.
|
|
14
|
+
- Add parser validation for UX flags.
|
|
15
|
+
- Add incompatible-combination errors.
|
|
16
|
+
- Add tests for CI/no-TTY/JSON behavior.
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- Unsupported flags fail before side effects.
|
|
21
|
+
- Supported flags are discoverable in help/docs.
|
|
22
|
+
- Machine modes are never decorated.
|
|
23
|
+
|
|
24
|
+
## Suggested Steps
|
|
25
|
+
|
|
26
|
+
1. Add central flag support matrix.
|
|
27
|
+
2. Extend arg parsing for new flags.
|
|
28
|
+
3. Validate unsupported and incompatible combinations early.
|
|
29
|
+
4. Add command contract tests.
|
|
30
|
+
5. Confirm existing commands keep passing.
|
|
31
|
+
|
|
32
|
+
## Restrictions
|
|
33
|
+
|
|
34
|
+
- Do not implement planner proposal writes here.
|
|
35
|
+
- Do not add prompts to commands in this slice.
|
|
36
|
+
|
|
37
|
+
## Risks
|
|
38
|
+
|
|
39
|
+
- Over-strict validation can break existing scripts if flags were previously ignored. Make errors clear and only reject new UX flags.
|
|
40
|
+
|
|
41
|
+
## Completion Checklist
|
|
42
|
+
|
|
43
|
+
- [ ] Matrix exists in code.
|
|
44
|
+
- [ ] Matrix is tested.
|
|
45
|
+
- [ ] CI/no-TTY/JSON behavior is protected.
|
|
46
|
+
- [ ] Unsupported flags produce actionable output.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-04-ux-flag-matrix-compatibility",
|
|
3
|
+
"ticket": "QUIVER-29-04",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "UX flag matrix and compatibility guardrails",
|
|
6
|
+
"objective": "Add centralized rules for UX flags, incompatible combinations, machine-output modes, and unsupported command guidance.",
|
|
7
|
+
"description": "Prevents inconsistent adoption of `--with-planner`, `--interactive`, and `--review` by making command support explicit and testable.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v29-ux-flag-matrix-compatibility",
|
|
12
|
+
"branch_name": "feature/QUIVER-29-04-v29-ux-flag-matrix-compatibility"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/index.js",
|
|
16
|
+
"src/create-quiver/lib/cli/ux-flags.js",
|
|
17
|
+
"src/create-quiver/lib/cli/ux.js",
|
|
18
|
+
"tests/commands/cli-contract.test.js",
|
|
19
|
+
"tests/commands/ux-flags.test.js",
|
|
20
|
+
"tests/lib/cli-ux.test.js",
|
|
21
|
+
"specs/quiver-v29-planner-prepare-context-cli-ux/**"
|
|
22
|
+
],
|
|
23
|
+
"expected_read_paths": [
|
|
24
|
+
"src/create-quiver/index.js",
|
|
25
|
+
"src/create-quiver/lib/cli/**",
|
|
26
|
+
"tests/commands/cli-contract.test.js"
|
|
27
|
+
],
|
|
28
|
+
"allowed_write_paths": [
|
|
29
|
+
"src/create-quiver/index.js",
|
|
30
|
+
"src/create-quiver/lib/cli/ux-flags.js",
|
|
31
|
+
"src/create-quiver/lib/cli/ux.js",
|
|
32
|
+
"tests/commands/cli-contract.test.js",
|
|
33
|
+
"tests/commands/ux-flags.test.js",
|
|
34
|
+
"tests/lib/cli-ux.test.js",
|
|
35
|
+
"specs/quiver-v29-planner-prepare-context-cli-ux/**"
|
|
36
|
+
],
|
|
37
|
+
"depends_on": [
|
|
38
|
+
"slice-01-cli-ux-primitives-theme"
|
|
39
|
+
],
|
|
40
|
+
"parallel_safe": "after_dependencies",
|
|
41
|
+
"parallel_safe_reason": "Can run in parallel with slice-02 if central parser conflicts are avoided.",
|
|
42
|
+
"must": [
|
|
43
|
+
"Define which commands support --with-planner, --interactive, and --review.",
|
|
44
|
+
"Reject unsupported UX flags with actionable messages.",
|
|
45
|
+
"Reject incompatible combinations such as --json --interactive and --json --review.",
|
|
46
|
+
"Ensure CI/no-TTY/--json disables spinners, colors, prompts, and decorative output.",
|
|
47
|
+
"Keep machine-readable stdout parseable."
|
|
48
|
+
],
|
|
49
|
+
"not_included": [
|
|
50
|
+
"Implementing planner mode itself.",
|
|
51
|
+
"Migrating all commands to interactive mode.",
|
|
52
|
+
"Changing existing command semantics beyond flag validation."
|
|
53
|
+
],
|
|
54
|
+
"acceptance": [
|
|
55
|
+
"Command/flag matrix is enforced in code and documented.",
|
|
56
|
+
"Unsupported flags fail before side effects.",
|
|
57
|
+
"Incompatible flag combinations fail before side effects.",
|
|
58
|
+
"JSON output stays undecorated.",
|
|
59
|
+
"Human-mode helpers remain opt-in."
|
|
60
|
+
],
|
|
61
|
+
"tests": [
|
|
62
|
+
"node --test tests/commands/ux-flags.test.js tests/commands/cli-contract.test.js",
|
|
63
|
+
"node --test tests/lib/cli-ux.test.js"
|
|
64
|
+
],
|
|
65
|
+
"validation_hints": [
|
|
66
|
+
"Tests should cover both supported and unsupported commands.",
|
|
67
|
+
"Do not allow partial command execution after flag validation failure."
|
|
68
|
+
],
|
|
69
|
+
"estimated_hours": 7,
|
|
70
|
+
"actual_hours": 2,
|
|
71
|
+
"status": "completed",
|
|
72
|
+
"completed_at": "2026-05-26"
|
|
73
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-05 Progressive command adoption
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed progressive UX adoption for selected high-value commands.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- `ai plan` accepts the UX flags, reports planner/review/interactive intent in dry-run, supports editor review of provider drafts before saving, and can require interactive approval before saving.
|
|
10
|
+
- `spec create` supports `--review` as a guarded preview review before writes and `--interactive` as explicit confirmation before generation.
|
|
11
|
+
- `ai pr` supports review/edit of `pr.md` before creating the PR plan and interactive confirmation before `gh pr create`.
|
|
12
|
+
- `ai pr` still rejects `--with-planner` through the centralized flag matrix.
|
|
13
|
+
- Existing tests for the affected commands continue to pass.
|
|
14
|
+
|
|
15
|
+
## Relevant Changes
|
|
16
|
+
|
|
17
|
+
- Updated `src/create-quiver/commands/ai.js` for `ai plan` draft review/interactive confirmation and `ai pr` PR body review/interactive confirmation.
|
|
18
|
+
- Updated `src/create-quiver/commands/spec.js` for `spec create` review/interactive guardrails.
|
|
19
|
+
- Updated `src/create-quiver/index.js` to await async `spec create`.
|
|
20
|
+
- Added command tests in `tests/commands/ai-plan.test.js`, `tests/commands/spec-create.test.js`, and `tests/commands/ai-pr.test.js`.
|
|
21
|
+
|
|
22
|
+
## Pending Work
|
|
23
|
+
|
|
24
|
+
- Final docs and command reference updates must document these supported flags.
|
|
25
|
+
- Remaining commands should be migrated only through future scoped slices.
|
|
26
|
+
|
|
27
|
+
## Remaining Risks
|
|
28
|
+
|
|
29
|
+
- Command UX can drift unless docs and matrix are updated in the final slice.
|
|
30
|
+
- `spec create --review` reviews the preview artifact and does not treat preview edits as source-of-truth changes; this is intentional guardrail behavior, but docs should explain it.
|
|
31
|
+
|
|
32
|
+
## Future Recommendations
|
|
33
|
+
|
|
34
|
+
- Consider future UX adoption for `doctor --interactive --fix`, `ai onboard`, and `ai revise`.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-05 Progressive command adoption
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
After `ai prepare-context` implements the full pattern, selected commands should adopt the same standard where it clearly improves UX.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Apply UX flags and review/interactive behavior to `ai plan`, `spec create`, and `ai pr` without redesigning unrelated commands.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `ai plan`: planner-related UX flags and optional review flow.
|
|
14
|
+
- `spec create`: guarded review/interactive path.
|
|
15
|
+
- `ai pr`: interactive PR inputs and review/edit of `pr.md`; no `--with-planner`.
|
|
16
|
+
- Tests for supported and unsupported combinations.
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- No command becomes interactive by default.
|
|
21
|
+
- Every interactive choice has a flag equivalent.
|
|
22
|
+
- Machine output stays clean.
|
|
23
|
+
- Unsupported flags fail clearly.
|
|
24
|
+
|
|
25
|
+
## Suggested Steps
|
|
26
|
+
|
|
27
|
+
1. Start with `ai pr --review` because it maps cleanly to existing `pr.md`.
|
|
28
|
+
2. Add minimal `spec create --review` guardrails.
|
|
29
|
+
3. Add `ai plan` UX flag compatibility.
|
|
30
|
+
4. Add tests for each.
|
|
31
|
+
|
|
32
|
+
## Restrictions
|
|
33
|
+
|
|
34
|
+
- Do not apply the standard to all commands in this slice.
|
|
35
|
+
- Do not add planner mode to `ai pr`.
|
|
36
|
+
|
|
37
|
+
## Risks
|
|
38
|
+
|
|
39
|
+
- Broad command changes can create regressions. Keep adoption narrow and test heavily.
|
|
40
|
+
|
|
41
|
+
## Completion Checklist
|
|
42
|
+
|
|
43
|
+
- [ ] `ai plan` compatibility tested.
|
|
44
|
+
- [ ] `spec create` review/interactive behavior tested.
|
|
45
|
+
- [ ] `ai pr` review/interactive behavior tested.
|
|
46
|
+
- [ ] Existing command tests still pass.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-05-progressive-command-adoption",
|
|
3
|
+
"ticket": "QUIVER-29-05",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Progressive command adoption",
|
|
6
|
+
"objective": "Apply the new UX standard to selected high-value commands after `ai prepare-context` proves the pattern.",
|
|
7
|
+
"description": "Adds focused UX improvements to `ai plan`, `spec create`, and `ai pr` without redesigning the whole CLI.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v29-progressive-command-adoption",
|
|
12
|
+
"branch_name": "feature/QUIVER-29-05-v29-progressive-command-adoption"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/index.js",
|
|
16
|
+
"src/create-quiver/commands/ai.js",
|
|
17
|
+
"src/create-quiver/commands/spec.js",
|
|
18
|
+
"src/create-quiver/lib/ai/github.js",
|
|
19
|
+
"src/create-quiver/lib/ai/spec-generator.js",
|
|
20
|
+
"tests/commands/ai-plan.test.js",
|
|
21
|
+
"tests/commands/spec-create.test.js",
|
|
22
|
+
"tests/commands/ai-pr.test.js",
|
|
23
|
+
"tests/commands/ux-flags.test.js",
|
|
24
|
+
"specs/quiver-v29-planner-prepare-context-cli-ux/**"
|
|
25
|
+
],
|
|
26
|
+
"expected_read_paths": [
|
|
27
|
+
"src/create-quiver/index.js",
|
|
28
|
+
"src/create-quiver/commands/ai.js",
|
|
29
|
+
"src/create-quiver/commands/spec.js",
|
|
30
|
+
"src/create-quiver/lib/ai/**",
|
|
31
|
+
"tests/commands/ai-plan.test.js",
|
|
32
|
+
"tests/commands/spec-create.test.js",
|
|
33
|
+
"tests/commands/ai-pr.test.js"
|
|
34
|
+
],
|
|
35
|
+
"allowed_write_paths": [
|
|
36
|
+
"src/create-quiver/index.js",
|
|
37
|
+
"src/create-quiver/commands/ai.js",
|
|
38
|
+
"src/create-quiver/commands/spec.js",
|
|
39
|
+
"src/create-quiver/lib/ai/github.js",
|
|
40
|
+
"src/create-quiver/lib/ai/spec-generator.js",
|
|
41
|
+
"tests/commands/ai-plan.test.js",
|
|
42
|
+
"tests/commands/spec-create.test.js",
|
|
43
|
+
"tests/commands/ai-pr.test.js",
|
|
44
|
+
"tests/commands/ux-flags.test.js",
|
|
45
|
+
"specs/quiver-v29-planner-prepare-context-cli-ux/**"
|
|
46
|
+
],
|
|
47
|
+
"depends_on": [
|
|
48
|
+
"slice-03-prepare-context-planner-review-flow",
|
|
49
|
+
"slice-04-ux-flag-matrix-compatibility"
|
|
50
|
+
],
|
|
51
|
+
"parallel_safe": "no",
|
|
52
|
+
"parallel_safe_reason": "Touches multiple command integrations and should run after the prepare-context pattern stabilizes.",
|
|
53
|
+
"must": [
|
|
54
|
+
"Apply the standard to `ai plan` only where planner semantics are already natural.",
|
|
55
|
+
"Apply the standard to `spec create` with safe review/interactive guardrails.",
|
|
56
|
+
"Apply `--interactive` and `--review` to `ai pr` without adding `--with-planner`.",
|
|
57
|
+
"Keep non-interactive flag equivalents for every prompt.",
|
|
58
|
+
"Avoid changing command outputs in --json and CI modes."
|
|
59
|
+
],
|
|
60
|
+
"not_included": [
|
|
61
|
+
"Full UX migration for all commands.",
|
|
62
|
+
"TUI dashboards.",
|
|
63
|
+
"Planner behavior for ai pr."
|
|
64
|
+
],
|
|
65
|
+
"acceptance": [
|
|
66
|
+
"`ai plan` supports documented UX flags without breaking existing planner drafts.",
|
|
67
|
+
"`spec create` supports documented review/interactive guardrails where safe.",
|
|
68
|
+
"`ai pr` can review/edit PR body and interactive inputs without planner mode.",
|
|
69
|
+
"Existing tests for those commands still pass.",
|
|
70
|
+
"New tests cover unsupported and compatible flag combinations."
|
|
71
|
+
],
|
|
72
|
+
"tests": [
|
|
73
|
+
"node --test tests/commands/ai-plan.test.js tests/commands/spec-create.test.js tests/commands/ai-pr.test.js tests/commands/ux-flags.test.js"
|
|
74
|
+
],
|
|
75
|
+
"validation_hints": [
|
|
76
|
+
"Prefer minimal adoption over broad rewrites.",
|
|
77
|
+
"Keep generated artifacts backward compatible."
|
|
78
|
+
],
|
|
79
|
+
"estimated_hours": 9,
|
|
80
|
+
"actual_hours": 4,
|
|
81
|
+
"status": "completed",
|
|
82
|
+
"completed_at": "2026-05-26"
|
|
83
|
+
}
|