create-quiver 0.12.0 → 0.13.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 +52 -0
- package/README.md +65 -25
- package/README_FOR_AI.md +36 -29
- package/ROADMAP.md +22 -3
- package/docs/AI_ONBOARDING_PROMPT.md.template +7 -1
- package/docs/COMMANDS.md.template +53 -20
- package/docs/STATUS.md.template +5 -1
- package/docs/WORKFLOW.md.template +13 -11
- package/package.json +10 -3
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/EVIDENCE_REPORT.md +293 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/EXECUTION_PLAN.md +58 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/SPEC.md +242 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/STATUS.md +35 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/pr.md +77 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-00-spec-foundation/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-01-cli-contract-compatibility/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-01-cli-contract-compatibility/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-01-cli-contract-compatibility/slice.json +56 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-02-run-state-phase-locks/CLOSURE_BRIEF.md +43 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-02-run-state-phase-locks/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-02-run-state-phase-locks/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-03-safe-ai-onboarding-docs/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-03-safe-ai-onboarding-docs/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-03-safe-ai-onboarding-docs/slice.json +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-04-agent-profiles-adapters/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-04-agent-profiles-adapters/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-04-agent-profiles-adapters/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-05-approval-gates/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-05-approval-gates/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-05-approval-gates/slice.json +53 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-06-spec-slice-generator/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-06-spec-slice-generator/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-06-spec-slice-generator/slice.json +55 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-07-slice-execution-planner/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-07-slice-execution-planner/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-07-slice-execution-planner/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-08-controlled-slice-execution/CLOSURE_BRIEF.md +39 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-08-controlled-slice-execution/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-08-controlled-slice-execution/slice.json +53 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-09-git-worktree-pr-lifecycle/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-09-git-worktree-pr-lifecycle/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-09-git-worktree-pr-lifecycle/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-10-validation-errors-fixtures/CLOSURE_BRIEF.md +39 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-10-validation-errors-fixtures/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-10-validation-errors-fixtures/slice.json +56 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-11-export-dashboard-migration/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-11-export-dashboard-migration/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-11-export-dashboard-migration/slice.json +53 -0
- package/specs/quiver-v26-0121-smoke-hardening/EVIDENCE_REPORT.md +208 -0
- package/specs/quiver-v26-0121-smoke-hardening/EXECUTION_PLAN.md +57 -0
- package/specs/quiver-v26-0121-smoke-hardening/SPEC.md +137 -0
- package/specs/quiver-v26-0121-smoke-hardening/STATUS.md +32 -0
- package/specs/quiver-v26-0121-smoke-hardening/pr.md +96 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-00-docs-foundation/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-00-docs-foundation/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-00-docs-foundation/slice.json +73 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-01-cli-help-version-contract/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-01-cli-help-version-contract/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-01-cli-help-version-contract/slice.json +76 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-02-init-doc-links-and-flow-guidance/CLOSURE_BRIEF.md +37 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-02-init-doc-links-and-flow-guidance/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-02-init-doc-links-and-flow-guidance/slice.json +75 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-03-ai-approval-review-consistency/CLOSURE_BRIEF.md +37 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-03-ai-approval-review-consistency/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-03-ai-approval-review-consistency/slice.json +77 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-04-local-validation-brief-contracts/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-04-local-validation-brief-contracts/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-04-local-validation-brief-contracts/slice.json +77 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-05-demo-scaffold-readiness/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-05-demo-scaffold-readiness/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-05-demo-scaffold-readiness/slice.json +84 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-06-plan-graph-scope-performance/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-06-plan-graph-scope-performance/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-06-plan-graph-scope-performance/slice.json +82 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-07-smoke-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-07-smoke-release-readiness/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-07-smoke-release-readiness/slice.json +92 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/AUDIT_V24_V25_V26.md +67 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/COMMAND_CONTRACTS.md +125 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/COVERAGE_MATRIX.md +74 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/EVIDENCE_REPORT.md +179 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/EXECUTION_PLAN.md +71 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/SPEC.md +176 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/STATUS.md +37 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/pr.md +132 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-00-docs-audit-coverage-and-contracts/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-00-docs-audit-coverage-and-contracts/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-00-docs-audit-coverage-and-contracts/slice.json +75 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-01-core-state-resolver-and-canonical-statuses/CLOSURE_BRIEF.md +37 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-01-core-state-resolver-and-canonical-statuses/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-01-core-state-resolver-and-canonical-statuses/slice.json +79 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-02-json-export-contract-and-machine-output/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-02-json-export-contract-and-machine-output/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-02-json-export-contract-and-machine-output/slice.json +75 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-03-approved-plan-to-spec-create/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-03-approved-plan-to-spec-create/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-03-approved-plan-to-spec-create/slice.json +78 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-04-ai-artifact-storage-redaction-and-token-compaction/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-04-ai-artifact-storage-redaction-and-token-compaction/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-04-ai-artifact-storage-redaction-and-token-compaction/slice.json +77 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-05-worktree-lifecycle-locks-and-recovery/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-05-worktree-lifecycle-locks-and-recovery/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-05-worktree-lifecycle-locks-and-recovery/slice.json +84 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-06-validation-gates-and-scope-safety/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-06-validation-gates-and-scope-safety/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-06-validation-gates-and-scope-safety/slice.json +99 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-07-context-analysis-and-doctor-flow/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-07-context-analysis-and-doctor-flow/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-07-context-analysis-and-doctor-flow/slice.json +88 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-08-cross-platform-help-auth-and-dx/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-08-cross-platform-help-auth-and-dx/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-08-cross-platform-help-auth-and-dx/slice.json +85 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-09-fixtures-smoke-docs-and-release-readiness/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-09-fixtures-smoke-docs-and-release-readiness/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-09-fixtures-smoke-docs-and-release-readiness/slice.json +91 -0
- package/src/create-quiver/commands/ai.js +652 -27
- package/src/create-quiver/commands/flow.js +58 -9
- package/src/create-quiver/commands/graph.js +11 -9
- package/src/create-quiver/commands/plan.js +7 -16
- package/src/create-quiver/commands/spec.js +282 -0
- package/src/create-quiver/index.js +409 -31
- package/src/create-quiver/lib/actionable-error.js +27 -0
- package/src/create-quiver/lib/agent-profiles.js +16 -4
- package/src/create-quiver/lib/ai/artifacts.js +318 -0
- package/src/create-quiver/lib/ai/context-packs.js +4 -0
- package/src/create-quiver/lib/ai/execution-plan.js +16 -1
- package/src/create-quiver/lib/ai/executor.js +272 -21
- package/src/create-quiver/lib/ai/export-state.js +679 -0
- package/src/create-quiver/lib/ai/github.js +162 -2
- package/src/create-quiver/lib/ai/onboarding-template.js +215 -2
- package/src/create-quiver/lib/ai/plan-review.js +7 -2
- package/src/create-quiver/lib/ai/providers.js +4 -3
- package/src/create-quiver/lib/ai/run-state.js +414 -0
- package/src/create-quiver/lib/ai/spec-generator.js +84 -13
- package/src/create-quiver/lib/ai/spec-templates.js +150 -21
- package/src/create-quiver/lib/analyze.js +2 -2
- package/src/create-quiver/lib/approvals.js +36 -5
- package/src/create-quiver/lib/demo.js +189 -14
- package/src/create-quiver/lib/doctor.js +154 -0
- package/src/create-quiver/lib/git.js +40 -1
- package/src/create-quiver/lib/handoff.js +123 -12
- package/src/create-quiver/lib/init-docs.js +35 -13
- package/src/create-quiver/lib/init-layout.js +9 -0
- package/src/create-quiver/lib/json.js +53 -3
- package/src/create-quiver/lib/lifecycle.js +52 -3
- package/src/create-quiver/lib/locks.js +134 -0
- package/src/create-quiver/lib/package-safety.js +7 -0
- package/src/create-quiver/lib/paths.js +74 -0
- package/src/create-quiver/lib/project-scan.js +74 -0
- package/src/create-quiver/lib/project-state-resolver.js +236 -0
- package/src/create-quiver/lib/readiness.js +66 -10
- package/src/create-quiver/lib/scope.js +52 -8
- package/src/create-quiver/lib/slice-graph.js +138 -38
- package/src/create-quiver/lib/slice.js +14 -5
- package/src/create-quiver/lib/spec-worktrees.js +129 -32
- package/src/create-quiver/lib/statuses.js +115 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-02: Run state, phase gates, and locks
|
|
2
|
+
|
|
3
|
+
## Summary of Work
|
|
4
|
+
|
|
5
|
+
- Added persistent AI lifecycle run state under `.quiver/runs/<run-id>/`.
|
|
6
|
+
- Added `ai run create`, `ai status`, and `ai resume` command behavior.
|
|
7
|
+
- Added approvals metadata for lifecycle runs.
|
|
8
|
+
- Added run/slice lock helpers with stale-lock metadata in `.quiver/locks/`.
|
|
9
|
+
- Connected `ai plan` and `ai approve` to lifecycle phase updates.
|
|
10
|
+
- Added phase guard helpers for blocking future-phase work with next-command guidance.
|
|
11
|
+
|
|
12
|
+
## Validation Against Acceptance Criteria
|
|
13
|
+
|
|
14
|
+
- [x] Run creation inspected.
|
|
15
|
+
- [x] Resume verified.
|
|
16
|
+
- [x] Invalid phase blocked.
|
|
17
|
+
- [x] Locks verified.
|
|
18
|
+
- [x] Tests run.
|
|
19
|
+
|
|
20
|
+
## Relevant Changes
|
|
21
|
+
|
|
22
|
+
- `src/create-quiver/lib/ai/run-state.js`
|
|
23
|
+
- `src/create-quiver/commands/ai.js`
|
|
24
|
+
- `src/create-quiver/index.js`
|
|
25
|
+
- `src/create-quiver/lib/init-layout.js`
|
|
26
|
+
- `tests/lib/ai-run-state.test.js`
|
|
27
|
+
- `tests/commands/ai-run-state.test.js`
|
|
28
|
+
- `tests/lib/init-layout.test.js`
|
|
29
|
+
- `README.md`
|
|
30
|
+
- `README_FOR_AI.md`
|
|
31
|
+
- `docs/COMMANDS.md.template`
|
|
32
|
+
|
|
33
|
+
## Pending
|
|
34
|
+
|
|
35
|
+
- None.
|
|
36
|
+
|
|
37
|
+
## Remaining Risks
|
|
38
|
+
|
|
39
|
+
- Locks are implemented as file locks with owner metadata. Process liveness cleanup is intentionally manual for now to avoid unsafe deletion.
|
|
40
|
+
|
|
41
|
+
## Future Recommendations
|
|
42
|
+
|
|
43
|
+
- Later slices should wire `assertAiRunPhaseAllows` into spec generation, execution planning, slice execution, and PR creation.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-02: Run state, phase gates, and locks
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
The lifecycle must survive interruptions, multiple agents, and multiple terminal sessions. Chat memory is not a safe state store.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Add persistent run state, phase validation, approvals metadata, status/resume, and locks.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `.quiver/runs/<run-id>/state.json`.
|
|
14
|
+
- `.quiver/runs/<run-id>/approvals.json`.
|
|
15
|
+
- Run status and resume commands or command paths.
|
|
16
|
+
- Phase transition validation.
|
|
17
|
+
- Run/slice locks and stale-lock recovery.
|
|
18
|
+
|
|
19
|
+
## Acceptance Criteria
|
|
20
|
+
|
|
21
|
+
- Run state persists and can be resumed.
|
|
22
|
+
- Future-phase commands are blocked.
|
|
23
|
+
- Locks prevent concurrent mutation.
|
|
24
|
+
- Stale locks are recoverable with metadata.
|
|
25
|
+
|
|
26
|
+
## Technical Plan Summary
|
|
27
|
+
|
|
28
|
+
Create state helpers and phase transition guards before adding higher-level planner or executor flows.
|
|
29
|
+
|
|
30
|
+
## Suggested Execution Steps
|
|
31
|
+
|
|
32
|
+
1. Define state schema and phase enum.
|
|
33
|
+
2. Add read/write helpers.
|
|
34
|
+
3. Add phase guard utility.
|
|
35
|
+
4. Add lock helpers.
|
|
36
|
+
5. Wire status/resume commands.
|
|
37
|
+
6. Test phase and lock behavior with temp fixtures.
|
|
38
|
+
|
|
39
|
+
## Restrictions
|
|
40
|
+
|
|
41
|
+
- Do not execute provider CLIs.
|
|
42
|
+
- Do not generate specs in this slice.
|
|
43
|
+
|
|
44
|
+
## Risks
|
|
45
|
+
|
|
46
|
+
- State schema drift can break future runs. Keep it versioned or migration-ready.
|
|
47
|
+
|
|
48
|
+
## Completion Checklist
|
|
49
|
+
|
|
50
|
+
- [ ] State helpers implemented.
|
|
51
|
+
- [ ] Phase guards implemented.
|
|
52
|
+
- [ ] Locks implemented.
|
|
53
|
+
- [ ] Tests passing.
|
|
54
|
+
- [ ] Evidence appended.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-02-run-state-phase-locks",
|
|
3
|
+
"ticket": "QUIVER-25-02",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Run state, phase gates, and locks",
|
|
6
|
+
"objective": "Persist AI lifecycle state and prevent invalid phase transitions or concurrent run corruption.",
|
|
7
|
+
"description": "Introduce `.quiver/runs/<run-id>/` state, approvals metadata, status/resume behavior, phase validation, and locks for runs and slices.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "run-state-phase-locks",
|
|
12
|
+
"branch_name": "feature/QUIVER-25-02-run-state-phase-locks"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/**",
|
|
16
|
+
"docs/**",
|
|
17
|
+
"tests/**"
|
|
18
|
+
],
|
|
19
|
+
"depends_on": [
|
|
20
|
+
"slice-01-cli-contract-compatibility"
|
|
21
|
+
],
|
|
22
|
+
"parallel_safe": "no",
|
|
23
|
+
"parallel_safe_reason": "Creates shared state machinery required by later slices.",
|
|
24
|
+
"must": [
|
|
25
|
+
"Create and load `.quiver/runs/<run-id>/state.json`.",
|
|
26
|
+
"Persist approvals metadata.",
|
|
27
|
+
"Add status and resume behavior.",
|
|
28
|
+
"Block commands that do not match the current phase.",
|
|
29
|
+
"Add run and slice locks with stale-lock metadata."
|
|
30
|
+
],
|
|
31
|
+
"not_included": [
|
|
32
|
+
"Provider execution.",
|
|
33
|
+
"Generating specs from planner output.",
|
|
34
|
+
"Git worktree lifecycle."
|
|
35
|
+
],
|
|
36
|
+
"acceptance": [
|
|
37
|
+
"A run can be created, inspected, and resumed.",
|
|
38
|
+
"Invalid future-phase commands are blocked with next-command guidance.",
|
|
39
|
+
"Run and slice locks prevent concurrent mutation.",
|
|
40
|
+
"Stale lock recovery shows metadata before removal.",
|
|
41
|
+
"State can be read without chat memory."
|
|
42
|
+
],
|
|
43
|
+
"tests": [
|
|
44
|
+
"node --test tests/**/*.test.js",
|
|
45
|
+
"git diff --check"
|
|
46
|
+
],
|
|
47
|
+
"estimated_hours": 6,
|
|
48
|
+
"status": "completed",
|
|
49
|
+
"blocked_reason": null,
|
|
50
|
+
"actual_hours": 3,
|
|
51
|
+
"completed_at": "2026-05-22T00:00:00-0300"
|
|
52
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-03: Safe AI onboarding documentation
|
|
2
|
+
|
|
3
|
+
## Summary of Work
|
|
4
|
+
|
|
5
|
+
Implemented safe docs-only AI context preparation for new and existing projects.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- [x] New project fixture validated.
|
|
10
|
+
- [x] Existing project fixture validated.
|
|
11
|
+
- [x] Dry-run validated.
|
|
12
|
+
- [x] Snapshot validated.
|
|
13
|
+
- [x] Conflict reporting validated.
|
|
14
|
+
|
|
15
|
+
## Relevant Changes
|
|
16
|
+
|
|
17
|
+
- `ai prepare-context --dry-run` now reports proposed doc actions, compact diffs, assumptions, risks, contradictions, omitted paths, and uncertainty markers without writing.
|
|
18
|
+
- Write mode snapshots touched docs under `.quiver/runs/<run-id>/snapshots/` before updating docs.
|
|
19
|
+
- Existing human-authored docs are preserved; Quiver appends or refreshes a managed context-prep block instead of replacing the full file.
|
|
20
|
+
- Context prep now targets `INDEX`, `PROJECT_MAP`, `AI_CONTEXT`, `AI_ONBOARDING_PROMPT`, `CONTEXTO`, `WORKFLOW`, `ARCHITECTURE`, `STATUS`, and `DECISIONS`.
|
|
21
|
+
- Context prep advances the lifecycle run to `onboarding-ready` after successful docs writes.
|
|
22
|
+
- README and command docs describe diff preview, snapshots, and contradiction reporting.
|
|
23
|
+
|
|
24
|
+
## Pending
|
|
25
|
+
|
|
26
|
+
No pending implementation for this slice.
|
|
27
|
+
|
|
28
|
+
## Remaining Risks
|
|
29
|
+
|
|
30
|
+
- Diff snippets are previews; full review should still use `git diff`.
|
|
31
|
+
- Contradiction detection is conservative and should expand with more real project signals in future hardening.
|
|
32
|
+
|
|
33
|
+
## Future Recommendations
|
|
34
|
+
|
|
35
|
+
- Dogfood this slice on Quiver itself and on a small generated project.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-03: Safe AI onboarding documentation
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Quiver should reduce manual onboarding work by letting AI complete project context docs, but this must be safe in existing projects.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Generate and update onboarding documentation with dry-run, snapshots, assumptions, and conflict reporting.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Docs-only onboarding generation.
|
|
14
|
+
- New project and existing project behavior.
|
|
15
|
+
- Dry-run previews and snapshots.
|
|
16
|
+
- Uncertainty markers and contradiction reports.
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- New projects get generated onboarding docs.
|
|
21
|
+
- Existing docs are preserved unless explicitly updated.
|
|
22
|
+
- `--dry-run` writes nothing.
|
|
23
|
+
- Snapshots are saved before writes.
|
|
24
|
+
- Unknowns and contradictions are visible.
|
|
25
|
+
|
|
26
|
+
## Technical Plan Summary
|
|
27
|
+
|
|
28
|
+
Extend analyzer/context preparation into a safe doc writer that separates inferred facts from assumptions and uses the run state created in slice-02.
|
|
29
|
+
|
|
30
|
+
## Suggested Execution Steps
|
|
31
|
+
|
|
32
|
+
1. Define allowed docs and write policy.
|
|
33
|
+
2. Add dry-run diff output.
|
|
34
|
+
3. Add snapshot creation.
|
|
35
|
+
4. Add uncertainty/conflict reporting.
|
|
36
|
+
5. Cover project-new, project-existing, and old-Quiver fixtures.
|
|
37
|
+
|
|
38
|
+
## Restrictions
|
|
39
|
+
|
|
40
|
+
- Do not modify product code in target projects.
|
|
41
|
+
- Do not read or log secret values from `.env` files.
|
|
42
|
+
|
|
43
|
+
## Risks
|
|
44
|
+
|
|
45
|
+
- AI text may sound more certain than evidence supports. Force uncertainty labels.
|
|
46
|
+
|
|
47
|
+
## Completion Checklist
|
|
48
|
+
|
|
49
|
+
- [ ] Dry-run implemented.
|
|
50
|
+
- [ ] Snapshot behavior implemented.
|
|
51
|
+
- [ ] Existing docs preservation tested.
|
|
52
|
+
- [ ] Conflict reporting tested.
|
|
53
|
+
- [ ] Evidence appended.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-03-safe-ai-onboarding-docs",
|
|
3
|
+
"ticket": "QUIVER-25-03",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Safe AI onboarding documentation",
|
|
6
|
+
"objective": "Let Quiver use AI to generate and update project onboarding docs safely for new, existing, and older Quiver projects.",
|
|
7
|
+
"description": "Implement docs-only onboarding generation with dry-run, diffs, snapshots, assumptions, risks, and conflict reporting.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "safe-ai-onboarding-docs",
|
|
12
|
+
"branch_name": "feature/QUIVER-25-03-safe-ai-onboarding-docs"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/**",
|
|
16
|
+
"docs/**",
|
|
17
|
+
"templates/**",
|
|
18
|
+
"tests/**"
|
|
19
|
+
],
|
|
20
|
+
"depends_on": [
|
|
21
|
+
"slice-02-run-state-phase-locks"
|
|
22
|
+
],
|
|
23
|
+
"parallel_safe": "yes",
|
|
24
|
+
"parallel_safe_reason": "Can run beside agent adapter work if command/state files do not overlap.",
|
|
25
|
+
"must": [
|
|
26
|
+
"Support onboarding generation with `--dry-run`.",
|
|
27
|
+
"Generate or update docs such as CONTEXTO, WORKFLOW, ARCHITECTURE, STATUS, INDEX, AI_CONTEXT, and PROJECT_MAP where applicable.",
|
|
28
|
+
"Mark uncertain content as TODO, Assumption, or Pending confirmation.",
|
|
29
|
+
"Preserve human-authored content and show diffs before writing.",
|
|
30
|
+
"Snapshot touched docs before writing.",
|
|
31
|
+
"Report contradictions instead of silently resolving them."
|
|
32
|
+
],
|
|
33
|
+
"not_included": [
|
|
34
|
+
"Provider adapter implementation unless needed for prompt-only output.",
|
|
35
|
+
"Spec generation from approved plans.",
|
|
36
|
+
"Product code modification in target projects."
|
|
37
|
+
],
|
|
38
|
+
"acceptance": [
|
|
39
|
+
"New projects receive useful onboarding docs from inferred stack/scripts/structure.",
|
|
40
|
+
"Existing projects update only approved docs without deleting useful content.",
|
|
41
|
+
"`--dry-run` writes nothing and reports proposed changes.",
|
|
42
|
+
"Snapshots are stored before writes.",
|
|
43
|
+
"Contradictions and unknowns are reported clearly.",
|
|
44
|
+
"No product code files are modified by onboarding generation."
|
|
45
|
+
],
|
|
46
|
+
"tests": [
|
|
47
|
+
"node --test tests/**/*.test.js",
|
|
48
|
+
"git diff --check"
|
|
49
|
+
],
|
|
50
|
+
"estimated_hours": 8,
|
|
51
|
+
"status": "completed",
|
|
52
|
+
"completed_at": "2026-05-22T16:31:18-0300",
|
|
53
|
+
"blocked_reason": null
|
|
54
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-04: Agent profiles and provider adapters
|
|
2
|
+
|
|
3
|
+
## Summary of Work
|
|
4
|
+
|
|
5
|
+
Implemented the provider-agnostic agent profile contract for planner, executor, reviewer, and doctor roles, plus prompt-only rendering and redacted provider output.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- [x] Profiles inspected.
|
|
10
|
+
- [x] Prompt-only mode verified.
|
|
11
|
+
- [x] Missing CLI guidance verified.
|
|
12
|
+
- [x] Structured output captured.
|
|
13
|
+
- [x] Tests run.
|
|
14
|
+
|
|
15
|
+
## Relevant Changes
|
|
16
|
+
|
|
17
|
+
- Added `doctor` as a supported agent profile and removed `researcher` from the public profile contract.
|
|
18
|
+
- Added `--print-prompt` support for planner/reviewer AI commands without invoking provider CLIs.
|
|
19
|
+
- Redacted likely secrets from provider stdout, stderr, and error messages.
|
|
20
|
+
- Added focused tests for doctor profiles, prompt-only output, missing CLI guidance, structured provider metadata, and log redaction.
|
|
21
|
+
- Updated README and command reference docs.
|
|
22
|
+
|
|
23
|
+
## Pending
|
|
24
|
+
|
|
25
|
+
No pending implementation for this slice.
|
|
26
|
+
|
|
27
|
+
## Remaining Risks
|
|
28
|
+
|
|
29
|
+
- Redaction remains best-effort and should not be treated as a reason to intentionally print secrets.
|
|
30
|
+
- `ai doctor` does not yet use the doctor provider profile; it remains a local readiness/GitHub preflight command.
|
|
31
|
+
|
|
32
|
+
## Future Recommendations
|
|
33
|
+
|
|
34
|
+
- Consider a later explicit `ai doctor --provider` diagnostic flow if the doctor profile should run model-assisted diagnosis.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-04: Agent profiles and provider adapters
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Quiver must support different model CLIs without hard-coding one provider or storing credentials.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Add provider-agnostic agent profiles and adapter contracts, starting with prompt-only behavior.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Planner, executor, reviewer, and doctor profiles.
|
|
14
|
+
- Provider command validation.
|
|
15
|
+
- Prompt rendering.
|
|
16
|
+
- Structured command result capture.
|
|
17
|
+
- Secret redaction for adapter logs.
|
|
18
|
+
|
|
19
|
+
## Acceptance Criteria
|
|
20
|
+
|
|
21
|
+
- Profiles store labels and command preferences, not secrets.
|
|
22
|
+
- Prompt-only mode works.
|
|
23
|
+
- Missing CLI errors are actionable.
|
|
24
|
+
- Execution metadata is captured when execution is enabled.
|
|
25
|
+
|
|
26
|
+
## Technical Plan Summary
|
|
27
|
+
|
|
28
|
+
Build a small adapter layer around external CLIs with explicit input/output contracts and dry-run-safe behavior.
|
|
29
|
+
|
|
30
|
+
## Suggested Execution Steps
|
|
31
|
+
|
|
32
|
+
1. Inspect current agent profile code.
|
|
33
|
+
2. Define adapter interface.
|
|
34
|
+
3. Implement prompt-only path.
|
|
35
|
+
4. Add CLI availability checks.
|
|
36
|
+
5. Add structured result capture and redaction.
|
|
37
|
+
6. Test with mocked provider commands.
|
|
38
|
+
|
|
39
|
+
## Restrictions
|
|
40
|
+
|
|
41
|
+
- Do not require real provider credentials in tests.
|
|
42
|
+
- Do not store API keys or tokens.
|
|
43
|
+
|
|
44
|
+
## Risks
|
|
45
|
+
|
|
46
|
+
- Provider CLIs differ substantially. Keep the first contract conservative.
|
|
47
|
+
|
|
48
|
+
## Completion Checklist
|
|
49
|
+
|
|
50
|
+
- [ ] Profile schema updated.
|
|
51
|
+
- [ ] Prompt-only path validated.
|
|
52
|
+
- [ ] Missing CLI errors tested.
|
|
53
|
+
- [ ] Redaction tested.
|
|
54
|
+
- [ ] Evidence appended.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-04-agent-profiles-adapters",
|
|
3
|
+
"ticket": "QUIVER-25-04",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Agent profiles and provider adapters",
|
|
6
|
+
"objective": "Create a safe provider-agnostic contract for planner, executor, reviewer, and doctor agents.",
|
|
7
|
+
"description": "Add profile and adapter behavior for Codex, Claude, Gemini, or custom commands, starting with prompt-only and dry-run-safe execution.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "agent-profiles-adapters",
|
|
12
|
+
"branch_name": "feature/QUIVER-25-04-agent-profiles-adapters"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/**",
|
|
16
|
+
"docs/**",
|
|
17
|
+
"tests/**"
|
|
18
|
+
],
|
|
19
|
+
"depends_on": [
|
|
20
|
+
"slice-02-run-state-phase-locks"
|
|
21
|
+
],
|
|
22
|
+
"parallel_safe": "yes",
|
|
23
|
+
"parallel_safe_reason": "Can run beside onboarding docs if adapter files are isolated.",
|
|
24
|
+
"must": [
|
|
25
|
+
"Support planner, executor, reviewer, and doctor profiles.",
|
|
26
|
+
"Store provider/model labels but never credentials.",
|
|
27
|
+
"Support prompt-only output with `--print-prompt` or equivalent.",
|
|
28
|
+
"Validate provider CLI availability before execution.",
|
|
29
|
+
"Capture stdout, stderr, exit code, timeout, and sanitized logs.",
|
|
30
|
+
"Define fallback behavior when a CLI is missing."
|
|
31
|
+
],
|
|
32
|
+
"not_included": [
|
|
33
|
+
"Approval gate implementation.",
|
|
34
|
+
"Spec generation.",
|
|
35
|
+
"Automatic multi-agent scheduling."
|
|
36
|
+
],
|
|
37
|
+
"acceptance": [
|
|
38
|
+
"Profiles can be configured and inspected without secrets.",
|
|
39
|
+
"Prompt-only mode works without provider authentication.",
|
|
40
|
+
"Missing provider CLI produces actionable guidance.",
|
|
41
|
+
"Adapter output is captured in a structured way.",
|
|
42
|
+
"Logs redact likely secrets before writing."
|
|
43
|
+
],
|
|
44
|
+
"tests": [
|
|
45
|
+
"node --test tests/**/*.test.js",
|
|
46
|
+
"git diff --check"
|
|
47
|
+
],
|
|
48
|
+
"estimated_hours": 7,
|
|
49
|
+
"status": "completed",
|
|
50
|
+
"completed_at": "2026-05-22T16:21:54-0300",
|
|
51
|
+
"blocked_reason": null
|
|
52
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-05: Approval gates and planner iterations
|
|
2
|
+
|
|
3
|
+
## Summary of Work
|
|
4
|
+
|
|
5
|
+
Implemented versioned planner approval gates for acceptance and technical-plan phases. `ai revise` now creates a new draft version from human feedback without approving or advancing the phase, while `ai approve` requires an explicit current draft version. Technical-plan approval now requires a production-readiness review for the current draft before spec generation can proceed.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- [x] Criteria revision flow verified.
|
|
10
|
+
- [x] Criteria approval verified.
|
|
11
|
+
- [x] Plan revision flow verified.
|
|
12
|
+
- [x] Plan approval verified.
|
|
13
|
+
- [x] Premature spec generation blocked.
|
|
14
|
+
|
|
15
|
+
## Relevant Changes
|
|
16
|
+
|
|
17
|
+
- Added `npx create-quiver ai revise`.
|
|
18
|
+
- Changed `ai approve` to approve saved draft versions only with `--version <n>`.
|
|
19
|
+
- Blocked approval of missing or non-current draft versions.
|
|
20
|
+
- Required current production-readiness review before technical-plan approval.
|
|
21
|
+
- Updated flow guidance, README, generated docs, init templates, and command reference.
|
|
22
|
+
- Added regression tests for revise, approval versioning, stale review blocking, and spec generation gates.
|
|
23
|
+
|
|
24
|
+
## Pending
|
|
25
|
+
|
|
26
|
+
None for this slice.
|
|
27
|
+
|
|
28
|
+
## Remaining Risks
|
|
29
|
+
|
|
30
|
+
- Technical-plan review checks are local state based; external provider quality still depends on the configured reviewer prompt and model.
|
|
31
|
+
|
|
32
|
+
## Future Recommendations
|
|
33
|
+
|
|
34
|
+
- Keep approval messages concise and cite the approved draft version.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-05: Approval gates and planner iterations
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Human approval is central to Quiver. Planner output must be iterated and approved before later phases can run.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Persist criteria and technical-plan drafts, revisions, and approvals with strict phase gates.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Acceptance criteria drafts.
|
|
14
|
+
- Technical-plan drafts.
|
|
15
|
+
- Revise commands.
|
|
16
|
+
- Approval commands.
|
|
17
|
+
- Approval state and phase blocking.
|
|
18
|
+
|
|
19
|
+
## Acceptance Criteria
|
|
20
|
+
|
|
21
|
+
- Drafts are versioned.
|
|
22
|
+
- Revisions do not advance phase.
|
|
23
|
+
- Approvals require concrete versions.
|
|
24
|
+
- Spec generation is blocked before approval.
|
|
25
|
+
- Approval history survives session changes.
|
|
26
|
+
|
|
27
|
+
## Technical Plan Summary
|
|
28
|
+
|
|
29
|
+
Use the run state from slice-02 and adapter prompts from slice-04 to manage planner drafts and approvals.
|
|
30
|
+
|
|
31
|
+
## Suggested Execution Steps
|
|
32
|
+
|
|
33
|
+
1. Define draft storage layout.
|
|
34
|
+
2. Add criteria draft/revise/approve behavior.
|
|
35
|
+
3. Add technical-plan draft/revise/review/approve behavior.
|
|
36
|
+
4. Wire phase guards.
|
|
37
|
+
5. Test invalid transitions.
|
|
38
|
+
|
|
39
|
+
## Restrictions
|
|
40
|
+
|
|
41
|
+
- Do not create spec/slice files in this slice.
|
|
42
|
+
- Do not execute implementation agents.
|
|
43
|
+
|
|
44
|
+
## Risks
|
|
45
|
+
|
|
46
|
+
- Loose approval semantics can let users approve the wrong version. Require explicit version IDs.
|
|
47
|
+
|
|
48
|
+
## Completion Checklist
|
|
49
|
+
|
|
50
|
+
- [ ] Criteria gate tested.
|
|
51
|
+
- [ ] Technical-plan gate tested.
|
|
52
|
+
- [ ] Invalid transitions tested.
|
|
53
|
+
- [ ] Approval state documented.
|
|
54
|
+
- [ ] Evidence appended.
|
package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-05-approval-gates/slice.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-05-approval-gates",
|
|
3
|
+
"ticket": "QUIVER-25-05",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Approval gates and planner iterations",
|
|
6
|
+
"objective": "Implement human approval gates for criteria, technical plans, and production-readiness review.",
|
|
7
|
+
"description": "Persist versioned planner drafts, allow revisions, require explicit approval, and block later phases until approvals exist.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "approval-gates-planner-iterations",
|
|
12
|
+
"branch_name": "feature/QUIVER-25-05-approval-gates-planner-iterations"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/**",
|
|
16
|
+
"docs/**",
|
|
17
|
+
"tests/**"
|
|
18
|
+
],
|
|
19
|
+
"depends_on": [
|
|
20
|
+
"slice-02-run-state-phase-locks",
|
|
21
|
+
"slice-04-agent-profiles-adapters"
|
|
22
|
+
],
|
|
23
|
+
"parallel_safe": "no",
|
|
24
|
+
"parallel_safe_reason": "Depends on shared state and agent profile contracts.",
|
|
25
|
+
"must": [
|
|
26
|
+
"Store versioned acceptance criteria drafts.",
|
|
27
|
+
"Store versioned technical-plan drafts.",
|
|
28
|
+
"Support revise commands that do not advance phase.",
|
|
29
|
+
"Approve only concrete versions.",
|
|
30
|
+
"Block spec generation until the plan is approved.",
|
|
31
|
+
"Record approval decisions and timestamps."
|
|
32
|
+
],
|
|
33
|
+
"not_included": [
|
|
34
|
+
"Spec file generation.",
|
|
35
|
+
"Slice execution.",
|
|
36
|
+
"PR creation."
|
|
37
|
+
],
|
|
38
|
+
"acceptance": [
|
|
39
|
+
"Criteria drafts can be generated, revised, and approved.",
|
|
40
|
+
"Technical-plan drafts can be generated, revised, reviewed, and approved.",
|
|
41
|
+
"Approving a missing or non-current version fails clearly.",
|
|
42
|
+
"Spec generation is blocked before plan approval.",
|
|
43
|
+
"Approvals are readable from state without chat memory."
|
|
44
|
+
],
|
|
45
|
+
"tests": [
|
|
46
|
+
"node --test tests/**/*.test.js",
|
|
47
|
+
"git diff --check"
|
|
48
|
+
],
|
|
49
|
+
"estimated_hours": 7,
|
|
50
|
+
"status": "completed",
|
|
51
|
+
"blocked_reason": null,
|
|
52
|
+
"completed_at": "2026-05-22T16:45:36-0300"
|
|
53
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-06: Spec, slice, handoff, and PR body generation
|
|
2
|
+
|
|
3
|
+
## Summary of Work
|
|
4
|
+
|
|
5
|
+
Completed the generated artifact contract for specs and slices. Generated `slice.json` files now include dependency data, parallel safety, expected read paths, allowed write paths, and validation hints, and generated `EXECUTION_BRIEF.md` files expose the same execution contract for agents.
|
|
6
|
+
|
|
7
|
+
## Validation Against Acceptance Criteria
|
|
8
|
+
|
|
9
|
+
- [x] Blocked before plan approval.
|
|
10
|
+
- [x] Dry-run verified.
|
|
11
|
+
- [x] Spec artifacts generated.
|
|
12
|
+
- [x] Slice handoffs generated.
|
|
13
|
+
- [x] JSON validation passed.
|
|
14
|
+
|
|
15
|
+
## Relevant Changes
|
|
16
|
+
|
|
17
|
+
- Added generated `expected_read_paths`, `allowed_write_paths`, and `validation_hints` to `slice.json`.
|
|
18
|
+
- Added validation that generated slice JSON contains those arrays.
|
|
19
|
+
- Added the same read/write/validation sections to generated execution briefs.
|
|
20
|
+
- Preserved backward compatibility by deriving `allowed_write_paths` from existing `files` and deriving `files` from explicit allowed write paths when needed.
|
|
21
|
+
- Added fixture coverage for explicit and default scope declarations.
|
|
22
|
+
|
|
23
|
+
## Pending
|
|
24
|
+
|
|
25
|
+
None for this slice.
|
|
26
|
+
|
|
27
|
+
## Remaining Risks
|
|
28
|
+
|
|
29
|
+
- Generated scopes are only as accurate as the approved planner output and safe defaults.
|
|
30
|
+
|
|
31
|
+
## Future Recommendations
|
|
32
|
+
|
|
33
|
+
- Use generated artifacts to dogfood the next Quiver spec.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-06: Spec, slice, handoff, and PR body generation
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Once the technical plan is approved, Quiver must turn it into durable artifacts that agents and humans can execute.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Generate complete spec/slice/handoff/PR artifacts from approved planner output.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Spec folder creation.
|
|
14
|
+
- Mandatory `slice-00`.
|
|
15
|
+
- Slice JSON and handoff generation.
|
|
16
|
+
- `EXECUTION_PLAN.md`, `EVIDENCE_REPORT.md`, `STATUS.md`, and `pr.md`.
|
|
17
|
+
- File scope declarations.
|
|
18
|
+
- Dry-run previews.
|
|
19
|
+
|
|
20
|
+
## Acceptance Criteria
|
|
21
|
+
|
|
22
|
+
- Generation is blocked before plan approval.
|
|
23
|
+
- Dry-run lists all proposed files.
|
|
24
|
+
- Artifacts follow Quiver layout.
|
|
25
|
+
- Every slice has handoffs and parseable JSON.
|
|
26
|
+
- `slice-00` exists.
|
|
27
|
+
|
|
28
|
+
## Technical Plan Summary
|
|
29
|
+
|
|
30
|
+
Transform approved planner output into the canonical `specs/<spec-slug>/` structure and validate before writing.
|
|
31
|
+
|
|
32
|
+
## Suggested Execution Steps
|
|
33
|
+
|
|
34
|
+
1. Define artifact generator contracts.
|
|
35
|
+
2. Add dry-run preview.
|
|
36
|
+
3. Generate top-level files.
|
|
37
|
+
4. Generate slices and handoffs.
|
|
38
|
+
5. Validate JSON and required files.
|
|
39
|
+
6. Test with fixture planner outputs.
|
|
40
|
+
|
|
41
|
+
## Restrictions
|
|
42
|
+
|
|
43
|
+
- Do not run execution agents.
|
|
44
|
+
- Do not commit or open PRs.
|
|
45
|
+
|
|
46
|
+
## Risks
|
|
47
|
+
|
|
48
|
+
- Poor planner output may create unusable slices. Validate and fail with actionable messages.
|
|
49
|
+
|
|
50
|
+
## Completion Checklist
|
|
51
|
+
|
|
52
|
+
- [ ] Dry-run tested.
|
|
53
|
+
- [ ] Generated files validated.
|
|
54
|
+
- [ ] Mandatory slice-00 tested.
|
|
55
|
+
- [ ] PR body tested.
|
|
56
|
+
- [ ] Evidence appended.
|