create-quiver 0.9.0 → 0.10.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/README.md +312 -124
- package/README_FOR_AI.md +59 -45
- package/ROADMAP.md +12 -11
- package/docs/AI_ONBOARDING_PROMPT.md.template +120 -52
- package/docs/COMMANDS.md.template +41 -6
- package/docs/GITFLOW_PR_GUIDE.md.template +11 -0
- package/docs/STANDARD.md.template +1 -1
- package/docs/SUPPORT_MATRIX.md.template +4 -0
- package/docs/TROUBLESHOOTING.md.template +29 -1
- package/docs/WORKFLOW.md.template +1 -1
- package/package.json +6 -1
- package/package.template.json +11 -6
- package/scripts/check-pr-readiness.sh +1 -1
- package/scripts/check-scope.sh +0 -1
- package/scripts/check-slice-readiness.sh +3 -4
- package/scripts/init-docs.sh +55 -9
- package/specs/quiver-v19-self-install-dev-dep/EVIDENCE_REPORT.md +2 -2
- package/specs/quiver-v19-self-install-dev-dep/STATUS.md +4 -4
- package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/slice.json +4 -4
- package/specs/quiver-v20-ai-cli-orchestration/EVIDENCE_REPORT.md +23 -0
- package/specs/quiver-v20-ai-cli-orchestration/EXECUTION_PLAN.md +57 -0
- package/specs/quiver-v20-ai-cli-orchestration/SPEC.md +202 -0
- package/specs/quiver-v20-ai-cli-orchestration/STATUS.md +35 -0
- package/specs/quiver-v20-ai-cli-orchestration/pr.md +100 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/slice.json +54 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/CLOSURE_BRIEF.md +39 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/slice.json +55 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/CLOSURE_BRIEF.md +40 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/slice.json +54 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/CLOSURE_BRIEF.md +43 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/EXECUTION_BRIEF.md +62 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/slice.json +62 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/slice.json +59 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/slice.json +59 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/EXECUTION_BRIEF.md +64 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/slice.json +65 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/slice.json +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/EXECUTION_BRIEF.md +64 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/slice.json +77 -0
- package/specs/quiver-v21-ai-first-layout/EVIDENCE_REPORT.md +31 -0
- package/specs/quiver-v21-ai-first-layout/EXECUTION_PLAN.md +185 -0
- package/specs/quiver-v21-ai-first-layout/SPEC.md +212 -0
- package/specs/quiver-v21-ai-first-layout/STATUS.md +37 -0
- package/specs/quiver-v21-ai-first-layout/pr.md +110 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/slice.json +45 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/slice.json +57 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/slice.json +58 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/slice.json +64 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/slice.json +64 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/slice.json +65 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/EXECUTION_BRIEF.md +62 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/slice.json +66 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/slice.json +67 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/slice.json +62 -0
- package/src/create-quiver/commands/ai.js +442 -0
- package/src/create-quiver/index.js +421 -84
- package/src/create-quiver/lib/ai/context-packs.js +158 -0
- package/src/create-quiver/lib/ai/execution-plan.js +254 -0
- package/src/create-quiver/lib/ai/executor.js +323 -0
- package/src/create-quiver/lib/ai/github.js +329 -0
- package/src/create-quiver/lib/ai/phase-gates.js +72 -0
- package/src/create-quiver/lib/ai/preflight.js +58 -0
- package/src/create-quiver/lib/ai/prompt-transport.js +81 -0
- package/src/create-quiver/lib/ai/prompts.js +39 -0
- package/src/create-quiver/lib/ai/providers.js +314 -0
- package/src/create-quiver/lib/ai/safety.js +151 -0
- package/src/create-quiver/lib/ai/spec-generator.js +314 -0
- package/src/create-quiver/lib/ai/spec-templates.js +715 -0
- package/src/create-quiver/lib/doctor.js +114 -0
- package/src/create-quiver/lib/git.js +21 -0
- package/src/create-quiver/lib/init-docs.js +286 -25
- package/src/create-quiver/lib/init-layout.js +426 -0
- package/src/create-quiver/lib/lifecycle.js +2 -2
- package/src/create-quiver/lib/paths.js +63 -2
- package/src/create-quiver/lib/project-scan.js +66 -0
- package/src/create-quiver/lib/readiness.js +4 -2
- package/src/create-quiver/lib/scope.js +125 -0
- package/src/create-quiver/lib/slice-graph.js +6 -0
- package/src/create-quiver/lib/slice.js +51 -8
- package/src/create-quiver/lib/state.js +18 -1
- package/src/create-quiver/lib/template-resolver.js +74 -0
- package/.claude/settings.local.json +0 -52
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Quiver v21 - AI-First Layout Status
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Completed.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
This spec defines the cleanup of Quiver's generated project layout. The default init should become AI-first and small, while `.quiver/` owns internal machinery and optional legacy/full assets move behind explicit flags.
|
|
10
|
+
|
|
11
|
+
## Slice Status
|
|
12
|
+
|
|
13
|
+
| Slice | Name | Status | Depends On |
|
|
14
|
+
| --- | --- | --- | --- |
|
|
15
|
+
| slice-00 | Spec foundation | Completed | - |
|
|
16
|
+
| slice-01 | Init profiles and dry-run planner | Completed | slice-00 |
|
|
17
|
+
| slice-02 | Internal layout and template resolver | Completed | slice-01 |
|
|
18
|
+
| slice-03 | Generation profiles and visible contract | Completed | slice-02 |
|
|
19
|
+
| slice-04 | Analyze scan relocation | Completed | slice-02 |
|
|
20
|
+
| slice-05 | Empty specs and layout doctor | Completed | slice-03, slice-04 |
|
|
21
|
+
| slice-06 | Legacy migration and optional assets | Completed | slice-03, slice-04 |
|
|
22
|
+
| slice-07 | Documentation and guidance alignment | Completed | slice-05, slice-06 |
|
|
23
|
+
| slice-08 | Smokes and release readiness | Completed | slice-07 |
|
|
24
|
+
|
|
25
|
+
## Current Evidence
|
|
26
|
+
|
|
27
|
+
- Acceptance criteria approved by user.
|
|
28
|
+
- Technical plan approved by user.
|
|
29
|
+
- `slice-00` completed with documentation-only artifacts.
|
|
30
|
+
- `slice-01` completed with init dry-run planner, explicit init/profile flags, and compatibility alias tests.
|
|
31
|
+
- `slice-02` completed with `.quiver/` internal layout helpers and template resolver support.
|
|
32
|
+
- `slice-03` completed with profile-aware generation for default, minimal, full, legacy scripts, and template export.
|
|
33
|
+
- `slice-04` completed with analyze scan relocation to `.quiver/scans/PROJECT_SCAN.json` and legacy scan fallback.
|
|
34
|
+
- `slice-05` completed with no-spec doctor support and layout detection for new, legacy, hybrid, and incomplete projects.
|
|
35
|
+
- `slice-06` completed with non-destructive migration reporting and explicit optional assets for `--legacy-scripts`, `--include-templates`, and `--full`.
|
|
36
|
+
- `slice-07` completed with documentation alignment for AI-first init, internal `.quiver/` scan paths, optional legacy assets, and generated README guidance.
|
|
37
|
+
- `slice-08` completed with final validation, tiered smoke alignment for the explicit full compatibility profile, and PR/evidence readiness.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
## Title
|
|
2
|
+
|
|
3
|
+
Quiver v21 - AI-First Layout
|
|
4
|
+
|
|
5
|
+
## Summary
|
|
6
|
+
|
|
7
|
+
Redesign Quiver's generated project layout so the default init is small, visible, and AI-first while internal machinery moves under `.quiver/`.
|
|
8
|
+
|
|
9
|
+
## Scope
|
|
10
|
+
|
|
11
|
+
- Add init profiles and `init --dry-run`.
|
|
12
|
+
- Move internal templates, state, scans, and runtime folders under `.quiver/`.
|
|
13
|
+
- Stop generating `docs-template/`, `tools/scripts/`, and placeholder specs by default.
|
|
14
|
+
- Preserve full/legacy behavior behind explicit flags.
|
|
15
|
+
- Keep `docs/PROJECT_MAP.md` visible while moving raw scan output to `.quiver/scans/PROJECT_SCAN.json`.
|
|
16
|
+
- Update doctor, no-spec command behavior, documentation, and smokes.
|
|
17
|
+
|
|
18
|
+
## Files
|
|
19
|
+
|
|
20
|
+
- `src/create-quiver/index.js`
|
|
21
|
+
- `src/create-quiver/commands/ai.js`
|
|
22
|
+
- `src/create-quiver/lib/init-layout.js`
|
|
23
|
+
- `src/create-quiver/lib/init-docs.js`
|
|
24
|
+
- `src/create-quiver/lib/project-scan.js`
|
|
25
|
+
- `src/create-quiver/lib/paths.js`
|
|
26
|
+
- `src/create-quiver/lib/slice.js`
|
|
27
|
+
- `src/create-quiver/lib/doctor.js`
|
|
28
|
+
- `src/create-quiver/lib/state.js`
|
|
29
|
+
- `src/create-quiver/lib/ai/context-packs.js`
|
|
30
|
+
- `scripts/*.sh`
|
|
31
|
+
- `scripts/ci/*`
|
|
32
|
+
- `tests/**/*.test.js`
|
|
33
|
+
- `README.md`
|
|
34
|
+
- `README_FOR_AI.md`
|
|
35
|
+
- `docs/*.template`
|
|
36
|
+
- `specs/quiver-v21-ai-first-layout/**`
|
|
37
|
+
|
|
38
|
+
## How to Test (DETAILED - REQUIRED)
|
|
39
|
+
|
|
40
|
+
### Required Environment
|
|
41
|
+
|
|
42
|
+
- Node.js 22.x recommended.
|
|
43
|
+
- npm.
|
|
44
|
+
- Git with worktree support.
|
|
45
|
+
- macOS/Linux shell for local smokes.
|
|
46
|
+
- Windows behavior is covered by `smoke-cross-platform`.
|
|
47
|
+
|
|
48
|
+
### Worktree Access
|
|
49
|
+
|
|
50
|
+
Use the dedicated spec branch/worktree:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
git switch docs/QUIVER-21-ai-first-layout
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Run the Project
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
node bin/create-quiver.js --help
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Use Cases
|
|
63
|
+
|
|
64
|
+
#### Case 1: Default AI-first init
|
|
65
|
+
|
|
66
|
+
Run `npx create-quiver init --name "Smoke Project"` and confirm it creates the visible onboarding contract without root `docs-template/`, `tools/scripts/`, or placeholder specs.
|
|
67
|
+
|
|
68
|
+
#### Case 2: Explicit compatibility profiles
|
|
69
|
+
|
|
70
|
+
Run init with `--minimal`, `--full`, `--legacy-scripts`, and `--include-templates` in isolated directories and confirm each profile creates only its intended assets.
|
|
71
|
+
|
|
72
|
+
#### Case 3: Analyze and no-spec lifecycle
|
|
73
|
+
|
|
74
|
+
Run `analyze`, `doctor`, `plan`, `graph`, and `next` on a project with no specs yet. Confirm the raw scan is under `.quiver/scans/PROJECT_SCAN.json`, the visible map stays at `docs/PROJECT_MAP.md`, and lifecycle commands return valid no-spec output.
|
|
75
|
+
|
|
76
|
+
#### Case 4: Legacy compatibility
|
|
77
|
+
|
|
78
|
+
Run migrate/doctor against a legacy layout and confirm `docs-template/`, `tools/scripts/`, and legacy `docs/PROJECT_SCAN.json` are preserved or reported as compatibility paths.
|
|
79
|
+
|
|
80
|
+
### Technical Verification
|
|
81
|
+
|
|
82
|
+
- `node --test tests/**/*.test.js` passed: 143 tests.
|
|
83
|
+
- `npm run smoke:create-quiver` passed.
|
|
84
|
+
- `bash scripts/ci/smoke-init-docs.sh` passed.
|
|
85
|
+
- `node scripts/ci/smoke-cross-platform.js` passed.
|
|
86
|
+
- `npm run smoke:tiered-pack` passed.
|
|
87
|
+
- `git diff --check` passed.
|
|
88
|
+
- GitHub Actions CI passed on validate, macOS, Ubuntu, and Windows: run `26196340530`.
|
|
89
|
+
|
|
90
|
+
## Evidence
|
|
91
|
+
|
|
92
|
+
- Default/minimal init coverage asserts no root `docs-template/`, no `tools/scripts/`, and no placeholder spec.
|
|
93
|
+
- Evidence details are recorded in `specs/quiver-v21-ai-first-layout/EVIDENCE_REPORT.md`.
|
|
94
|
+
- Slice status is recorded in `specs/quiver-v21-ai-first-layout/STATUS.md`.
|
|
95
|
+
- Windows/Git Bash path handling is covered by `tests/lib/paths.test.js`.
|
|
96
|
+
|
|
97
|
+
## Rollback
|
|
98
|
+
|
|
99
|
+
- Revert this PR to restore the previous generated layout behavior:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
git revert <merge-commit-sha>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
- Existing projects can continue using legacy-compatible paths via `migrate`, `--full`, `--legacy-scripts`, or `--include-templates`.
|
|
106
|
+
|
|
107
|
+
## Risks / Notes
|
|
108
|
+
|
|
109
|
+
- Existing projects that depend on legacy generated paths should use `migrate`, `--full`, `--legacy-scripts`, or `--include-templates` intentionally.
|
|
110
|
+
- npm publication should happen only after this PR is merged.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-00: Spec foundation
|
|
2
|
+
|
|
3
|
+
## Resumen de lo realizado
|
|
4
|
+
|
|
5
|
+
Se creo la base documental completa de `quiver-v21-ai-first-layout`: spec, status, evidence report, execution plan, cuerpo de PR y nueve slices con `slice.json`, `EXECUTION_BRIEF.md` y `CLOSURE_BRIEF.md`.
|
|
6
|
+
|
|
7
|
+
## Validacion contra criterios de aceptacion
|
|
8
|
+
|
|
9
|
+
- [x] Spec incluye criterios aprobados.
|
|
10
|
+
- [x] Plan tecnico aprobado incluido.
|
|
11
|
+
- [x] Todos los slices tienen handoffs.
|
|
12
|
+
- [x] No se modifico codigo de producto.
|
|
13
|
+
|
|
14
|
+
## Cambios relevantes
|
|
15
|
+
|
|
16
|
+
- `SPEC.md` documenta el layout AI-first y la separacion contrato visible vs maquinaria interna.
|
|
17
|
+
- `EXECUTION_PLAN.md` define olas secuenciales y paralelas.
|
|
18
|
+
- Cada slice tiene brief de ejecucion y cierre.
|
|
19
|
+
|
|
20
|
+
## Pendientes
|
|
21
|
+
|
|
22
|
+
- Implementar `slice-01` a `slice-08`.
|
|
23
|
+
|
|
24
|
+
## Riesgos remanentes
|
|
25
|
+
|
|
26
|
+
- El alcance toca init, analyze, doctor, docs y smokes; los merges de olas paralelas pueden requerir coordinacion manual.
|
|
27
|
+
|
|
28
|
+
## Recomendaciones futuras
|
|
29
|
+
|
|
30
|
+
- Ejecutar las olas en orden y no iniciar documentacion final hasta estabilizar comportamiento.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-00: Spec foundation
|
|
2
|
+
|
|
3
|
+
**Spec:** quiver-v21-ai-first-layout
|
|
4
|
+
**Slice:** slice-00-spec-foundation
|
|
5
|
+
**Tipo:** docs
|
|
6
|
+
|
|
7
|
+
## Contexto
|
|
8
|
+
|
|
9
|
+
Quiver necesita redisenar su layout generado para que el init default sea AI-first y limpio. Este slice publica el contrato aprobado antes de tocar codigo.
|
|
10
|
+
|
|
11
|
+
## Objetivo
|
|
12
|
+
|
|
13
|
+
Crear y validar la documentacion completa de la spec v21, incluyendo slices y handoffs.
|
|
14
|
+
|
|
15
|
+
## Alcance
|
|
16
|
+
|
|
17
|
+
- `SPEC.md`
|
|
18
|
+
- `STATUS.md`
|
|
19
|
+
- `EVIDENCE_REPORT.md`
|
|
20
|
+
- `EXECUTION_PLAN.md`
|
|
21
|
+
- `pr.md`
|
|
22
|
+
- `slices/**/slice.json`
|
|
23
|
+
- `slices/**/EXECUTION_BRIEF.md`
|
|
24
|
+
- `slices/**/CLOSURE_BRIEF.md`
|
|
25
|
+
|
|
26
|
+
## Criterios de aceptacion
|
|
27
|
+
|
|
28
|
+
- La spec incluye criterios aprobados y plan tecnico aprobado.
|
|
29
|
+
- Todos los slices tienen handoffs obligatorios.
|
|
30
|
+
- `slice-00` queda marcado como prerequisito para el resto.
|
|
31
|
+
- No hay cambios de codigo de producto.
|
|
32
|
+
|
|
33
|
+
## Plan tecnico resumido
|
|
34
|
+
|
|
35
|
+
Crear solo artefactos documentales bajo `specs/quiver-v21-ai-first-layout/`.
|
|
36
|
+
|
|
37
|
+
## Pasos sugeridos de ejecucion
|
|
38
|
+
|
|
39
|
+
1. Revisar `README_FOR_AI.md` y specs recientes para mantener el formato local.
|
|
40
|
+
2. Crear la carpeta de spec.
|
|
41
|
+
3. Crear archivos raiz de la spec.
|
|
42
|
+
4. Crear slices con `slice.json` y briefs.
|
|
43
|
+
5. Validar JSON y whitespace.
|
|
44
|
+
|
|
45
|
+
## Restricciones
|
|
46
|
+
|
|
47
|
+
- No implementar codigo.
|
|
48
|
+
- No modificar docs fuera de la spec.
|
|
49
|
+
- No publicar release.
|
|
50
|
+
|
|
51
|
+
## Riesgos
|
|
52
|
+
|
|
53
|
+
- Slices demasiado grandes para ejecutores.
|
|
54
|
+
- Dependencias ambiguas entre slices.
|
|
55
|
+
- Desalineacion con el formato real de Quiver.
|
|
56
|
+
|
|
57
|
+
## Checklist de finalizacion
|
|
58
|
+
|
|
59
|
+
- [ ] Spec raiz creada.
|
|
60
|
+
- [ ] Execution plan creado.
|
|
61
|
+
- [ ] Todos los slices creados.
|
|
62
|
+
- [ ] Todos los `slice.json` parsean.
|
|
63
|
+
- [ ] `git diff --check` pasa.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-00-spec-foundation",
|
|
3
|
+
"ticket": "QUIVER-21-00",
|
|
4
|
+
"type": "docs",
|
|
5
|
+
"title": "Publish AI-first layout spec foundation",
|
|
6
|
+
"objective": "Commit the approved spec, execution plan, PR body, slice definitions, and handoff briefs for the AI-first layout initiative.",
|
|
7
|
+
"description": "This slice is mandatory and must land first so every later executor can work from an approved, versioned handoff.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "docs",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "quiver-21-ai-first-layout-spec-foundation",
|
|
12
|
+
"branch_name": "docs/QUIVER-21-00-ai-first-layout-spec-foundation"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"specs/quiver-v21-ai-first-layout/**"
|
|
16
|
+
],
|
|
17
|
+
"depends_on": [],
|
|
18
|
+
"parallel_safe": "no",
|
|
19
|
+
"parallel_safe_reason": "Foundation documentation must be reviewed before implementation slices start.",
|
|
20
|
+
"must": [
|
|
21
|
+
"Create SPEC.md with approved acceptance criteria and technical plan.",
|
|
22
|
+
"Create STATUS.md, EVIDENCE_REPORT.md, EXECUTION_PLAN.md, and pr.md.",
|
|
23
|
+
"Create every slice directory with slice.json, EXECUTION_BRIEF.md, and CLOSURE_BRIEF.md.",
|
|
24
|
+
"Keep scope limited to documentation artifacts."
|
|
25
|
+
],
|
|
26
|
+
"not_included": [
|
|
27
|
+
"Product code changes.",
|
|
28
|
+
"Generated project behavior changes.",
|
|
29
|
+
"Release or npm publication."
|
|
30
|
+
],
|
|
31
|
+
"acceptance": [
|
|
32
|
+
"Spec documents the visible-vs-internal layout decision.",
|
|
33
|
+
"Every slice has an EXECUTION_BRIEF and CLOSURE_BRIEF at its slice root.",
|
|
34
|
+
"Execution plan names sequential and parallel levels.",
|
|
35
|
+
"All slice.json files parse as valid JSON."
|
|
36
|
+
],
|
|
37
|
+
"tests": [
|
|
38
|
+
"find specs/quiver-v21-ai-first-layout/slices -name 'slice.json' -print -exec node -e \"JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8'))\" {} \\;",
|
|
39
|
+
"git diff --check"
|
|
40
|
+
],
|
|
41
|
+
"estimated_hours": 2,
|
|
42
|
+
"actual_hours": 2,
|
|
43
|
+
"status": "completed",
|
|
44
|
+
"blocked_reason": null
|
|
45
|
+
}
|
package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/CLOSURE_BRIEF.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-01: Init profiles and dry-run planner
|
|
2
|
+
|
|
3
|
+
## Resumen de lo realizado
|
|
4
|
+
|
|
5
|
+
Se agrego el comando explicito `init`, flags de perfil para inicializacion, un planner puro de layout y el flujo `init --dry-run` sin escrituras. El comando historico `npx create-quiver --name` sigue funcionando como alias compatible.
|
|
6
|
+
|
|
7
|
+
## Validacion contra criterios de aceptacion
|
|
8
|
+
|
|
9
|
+
- [x] `init --dry-run` no escribe archivos.
|
|
10
|
+
- [x] Alias `--name` preservado.
|
|
11
|
+
- [x] Flags invalidos fallan antes de escribir.
|
|
12
|
+
- [x] Planner testeado como funcion pura.
|
|
13
|
+
|
|
14
|
+
## Cambios relevantes
|
|
15
|
+
|
|
16
|
+
- `src/create-quiver/lib/init-layout.js` agrega planning puro y formatter de dry-run.
|
|
17
|
+
- `src/create-quiver/index.js` parsea `init`, `--minimal`, `--full`, `--legacy-scripts`, `--include-templates` y conecta `--dry-run`.
|
|
18
|
+
- Tests nuevos cubren planner, perfiles, alias compatible y que init real conserva el layout historico en este slice.
|
|
19
|
+
|
|
20
|
+
## Pendientes
|
|
21
|
+
|
|
22
|
+
- `slice-02` debe mover la infraestructura interna y template resolver real.
|
|
23
|
+
- `slice-03` debe cambiar la escritura efectiva por perfiles.
|
|
24
|
+
|
|
25
|
+
## Riesgos remanentes
|
|
26
|
+
|
|
27
|
+
- En esta slice los perfiles solo impactan el plan dry-run; la escritura real sigue usando el layout historico por diseno del corte.
|
|
28
|
+
|
|
29
|
+
## Recomendaciones futuras
|
|
30
|
+
|
|
31
|
+
- Usar `init-layout.js` como contrato unico para los slices siguientes y evitar duplicar listas de archivos.
|
package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/EXECUTION_BRIEF.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-01: Init profiles and dry-run planner
|
|
2
|
+
|
|
3
|
+
**Spec:** quiver-v21-ai-first-layout
|
|
4
|
+
**Slice:** slice-01-init-profiles-dry-run
|
|
5
|
+
**Tipo:** feature
|
|
6
|
+
|
|
7
|
+
## Contexto
|
|
8
|
+
|
|
9
|
+
Antes de cambiar archivos generados, Quiver necesita una superficie explicita para init y un plan testeable que permita previews seguros.
|
|
10
|
+
|
|
11
|
+
## Objetivo
|
|
12
|
+
|
|
13
|
+
Agregar el comando `init`, perfiles de generacion y `--dry-run` sin cambiar todavia la escritura real.
|
|
14
|
+
|
|
15
|
+
## Alcance
|
|
16
|
+
|
|
17
|
+
- Parser CLI.
|
|
18
|
+
- Alias compatible `npx create-quiver --name`.
|
|
19
|
+
- Nuevo modulo puro para calcular operaciones de layout.
|
|
20
|
+
- Tests del parser y del planner.
|
|
21
|
+
|
|
22
|
+
## Criterios de aceptacion
|
|
23
|
+
|
|
24
|
+
- `init --dry-run` no escribe archivos.
|
|
25
|
+
- `--name` sigue funcionando como alias.
|
|
26
|
+
- Flags invalidos fallan antes de escribir.
|
|
27
|
+
- El planner devuelve operaciones estructuradas.
|
|
28
|
+
|
|
29
|
+
## Plan tecnico resumido
|
|
30
|
+
|
|
31
|
+
Agregar `init` a `parseArgs`, normalizar flags en un objeto de perfil y crear `lib/init-layout.js` con funciones puras. Conectar dry-run para imprimir el plan y salir.
|
|
32
|
+
|
|
33
|
+
## Pasos sugeridos de ejecucion
|
|
34
|
+
|
|
35
|
+
1. Agregar `init` a comandos soportados.
|
|
36
|
+
2. Parsear flags de perfil.
|
|
37
|
+
3. Implementar validacion de combinaciones.
|
|
38
|
+
4. Implementar layout planner sin I/O.
|
|
39
|
+
5. Conectar `--dry-run`.
|
|
40
|
+
6. Agregar tests unitarios y CLI.
|
|
41
|
+
|
|
42
|
+
## Restricciones
|
|
43
|
+
|
|
44
|
+
- No cambiar todavia el set de archivos generado por init normal.
|
|
45
|
+
- No mover templates.
|
|
46
|
+
- No tocar docs salvo status/evidence del slice.
|
|
47
|
+
|
|
48
|
+
## Riesgos
|
|
49
|
+
|
|
50
|
+
- Romper compatibilidad del comando historico.
|
|
51
|
+
- Duplicar logica entre parser y planner.
|
|
52
|
+
- Hacer dry-run parcial que igual escriba algo.
|
|
53
|
+
|
|
54
|
+
## Checklist de finalizacion
|
|
55
|
+
|
|
56
|
+
- [ ] Tests del parser pasan.
|
|
57
|
+
- [ ] Tests del planner pasan.
|
|
58
|
+
- [ ] Dry-run deja `git status` limpio en fixture.
|
|
59
|
+
- [ ] Comandos existentes siguen funcionando.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-01-init-profiles-dry-run",
|
|
3
|
+
"ticket": "QUIVER-21-01",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Add init profiles and dry-run planner",
|
|
6
|
+
"objective": "Introduce explicit init mode, profile flags, compatibility alias behavior, and a pure layout plan for dry-run output.",
|
|
7
|
+
"description": "This slice creates the command surface and planning layer without changing the file generation behavior yet.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "init-profiles-dry-run",
|
|
12
|
+
"branch_name": "feature/QUIVER-21-01-init-profiles-dry-run"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/index.js",
|
|
16
|
+
"src/create-quiver/lib/init-layout.js",
|
|
17
|
+
"tests/lib/init-layout.test.js",
|
|
18
|
+
"tests/commands/init-profiles.test.js",
|
|
19
|
+
"specs/quiver-v21-ai-first-layout/STATUS.md",
|
|
20
|
+
"specs/quiver-v21-ai-first-layout/EVIDENCE_REPORT.md",
|
|
21
|
+
"specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/CLOSURE_BRIEF.md",
|
|
22
|
+
"specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/slice.json"
|
|
23
|
+
],
|
|
24
|
+
"depends_on": [
|
|
25
|
+
"slice-00-spec-foundation"
|
|
26
|
+
],
|
|
27
|
+
"parallel_safe": "no",
|
|
28
|
+
"parallel_safe_reason": "Establishes parser and layout planning contracts used by later slices.",
|
|
29
|
+
"must": [
|
|
30
|
+
"Add explicit `init` command parsing.",
|
|
31
|
+
"Keep `npx create-quiver --name` as a compatibility alias.",
|
|
32
|
+
"Add flags `--minimal`, `--full`, `--legacy-scripts`, `--include-templates`, and `--dry-run` for init.",
|
|
33
|
+
"Add a pure layout planner that returns planned operations without writing files.",
|
|
34
|
+
"Make `init --dry-run` print planned creates, skips, internal files, optional files, and risks.",
|
|
35
|
+
"Validate invalid flag combinations before writes."
|
|
36
|
+
],
|
|
37
|
+
"not_included": [
|
|
38
|
+
"Changing actual generated file sets.",
|
|
39
|
+
"Moving templates or scan outputs.",
|
|
40
|
+
"Updating docs."
|
|
41
|
+
],
|
|
42
|
+
"acceptance": [
|
|
43
|
+
"`npx create-quiver init --name \"Project\" --dry-run` does not write files.",
|
|
44
|
+
"`npx create-quiver --name \"Project\" --dry-run` follows the compatibility path.",
|
|
45
|
+
"Invalid profiles fail before file writes.",
|
|
46
|
+
"The layout planner is unit tested as a pure function.",
|
|
47
|
+
"Existing non-init commands still parse."
|
|
48
|
+
],
|
|
49
|
+
"tests": [
|
|
50
|
+
"node --test tests/lib/init-layout.test.js tests/commands/init-profiles.test.js",
|
|
51
|
+
"git diff --check"
|
|
52
|
+
],
|
|
53
|
+
"estimated_hours": 5,
|
|
54
|
+
"actual_hours": 5,
|
|
55
|
+
"status": "completed",
|
|
56
|
+
"blocked_reason": null
|
|
57
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-02: Internal layout and template resolver
|
|
2
|
+
|
|
3
|
+
## Resumen de lo realizado
|
|
4
|
+
|
|
5
|
+
Se agrego el contrato interno `.quiver/`, config y gitignore internos, helpers centralizados de paths y un resolver de templates que prioriza templates empaquetados con fallback legacy.
|
|
6
|
+
|
|
7
|
+
## Validacion contra criterios de aceptacion
|
|
8
|
+
|
|
9
|
+
- [x] `.quiver/` creado con metadata.
|
|
10
|
+
- [x] Runtime ignorado.
|
|
11
|
+
- [x] Templates empaquetados resueltos.
|
|
12
|
+
- [x] Fallback legacy cubierto.
|
|
13
|
+
|
|
14
|
+
## Cambios relevantes
|
|
15
|
+
|
|
16
|
+
- `src/create-quiver/lib/init-layout.js` ahora define paths internos, config y gitignore.
|
|
17
|
+
- `src/create-quiver/lib/template-resolver.js` resuelve templates empaquetados, exportados y legacy.
|
|
18
|
+
- `initializeProjectDocs` acepta `templateRoot` explicito y escribe `.quiver/config.json` y `.quiver/.gitignore`.
|
|
19
|
+
- `statePath` usa el helper centralizado de `.quiver/`.
|
|
20
|
+
|
|
21
|
+
## Pendientes
|
|
22
|
+
|
|
23
|
+
- `slice-03` debe cambiar el set real generado por perfiles.
|
|
24
|
+
- `slice-04` debe mover el scan crudo a `.quiver/scans/`.
|
|
25
|
+
|
|
26
|
+
## Riesgos remanentes
|
|
27
|
+
|
|
28
|
+
- El init real todavia exporta `docs-template/` legacy por diseno del corte; se quitara del default en `slice-03`.
|
|
29
|
+
|
|
30
|
+
## Recomendaciones futuras
|
|
31
|
+
|
|
32
|
+
- Consumir `template-resolver.js` en futuros generadores para evitar nuevas dependencias directas de `docs-template/`.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-02: Internal layout and template resolver
|
|
2
|
+
|
|
3
|
+
**Spec:** quiver-v21-ai-first-layout
|
|
4
|
+
**Slice:** slice-02-internal-layout-template-resolver
|
|
5
|
+
**Tipo:** feature
|
|
6
|
+
|
|
7
|
+
## Contexto
|
|
8
|
+
|
|
9
|
+
El layout nuevo separa maquinaria interna y contrato visible. Para lograrlo, Quiver no debe depender de `docs-template/` visible en proyectos nuevos.
|
|
10
|
+
|
|
11
|
+
## Objetivo
|
|
12
|
+
|
|
13
|
+
Agregar contrato `.quiver/` y resolucion de templates empaquetados con fallback legacy.
|
|
14
|
+
|
|
15
|
+
## Alcance
|
|
16
|
+
|
|
17
|
+
- `.quiver/state.json`
|
|
18
|
+
- `.quiver/config.json`
|
|
19
|
+
- `.quiver/.gitignore`
|
|
20
|
+
- `.quiver/templates/` solo bajo opt-in futuro.
|
|
21
|
+
- Template resolver empaquetado y fallback legacy.
|
|
22
|
+
|
|
23
|
+
## Criterios de aceptacion
|
|
24
|
+
|
|
25
|
+
- `.quiver/` contiene metadata versionable y runtime ignorado.
|
|
26
|
+
- `cache`, `runs` y `worktrees` quedan ignorados.
|
|
27
|
+
- Templates se resuelven sin `docs-template/` visible.
|
|
28
|
+
- `docs-template/` legacy sigue funcionando si existe.
|
|
29
|
+
|
|
30
|
+
## Plan tecnico resumido
|
|
31
|
+
|
|
32
|
+
Centralizar paths internos en un helper o extender `init-layout`. Agregar `template-resolver.js` para ubicar templates empaquetados, `.quiver/templates/` y legacy `docs-template/` en orden seguro.
|
|
33
|
+
|
|
34
|
+
## Pasos sugeridos de ejecucion
|
|
35
|
+
|
|
36
|
+
1. Definir helpers de paths `.quiver`.
|
|
37
|
+
2. Crear writer para `.quiver/.gitignore`.
|
|
38
|
+
3. Agregar `config.json` minimo.
|
|
39
|
+
4. Extraer resolucion de templates.
|
|
40
|
+
5. Actualizar usos internos.
|
|
41
|
+
6. Agregar tests de resolver y gitignore.
|
|
42
|
+
|
|
43
|
+
## Restricciones
|
|
44
|
+
|
|
45
|
+
- No eliminar soporte legacy.
|
|
46
|
+
- No copiar templates por default al root.
|
|
47
|
+
- No mover scans todavia.
|
|
48
|
+
|
|
49
|
+
## Riesgos
|
|
50
|
+
|
|
51
|
+
- Romper `new-handoff` o `migrate`.
|
|
52
|
+
- Resolver templates desde el proyecto equivocado.
|
|
53
|
+
- Versionar carpetas runtime por accidente.
|
|
54
|
+
|
|
55
|
+
## Checklist de finalizacion
|
|
56
|
+
|
|
57
|
+
- [ ] Tests de resolver pasan.
|
|
58
|
+
- [ ] `.quiver/.gitignore` cubre runtime.
|
|
59
|
+
- [ ] Fallback legacy testeado.
|
|
60
|
+
- [ ] No hay dependencia obligatoria de `docs-template/`.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-02-internal-layout-template-resolver",
|
|
3
|
+
"ticket": "QUIVER-21-02",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Add internal .quiver layout and template resolver",
|
|
6
|
+
"objective": "Create the internal .quiver layout contract and remove default runtime dependence on visible docs-template.",
|
|
7
|
+
"description": "This slice introduces internal folders, .quiver gitignore policy, config metadata, and packaged template resolution.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "internal-layout-template-resolver",
|
|
12
|
+
"branch_name": "feature/QUIVER-21-02-internal-layout-template-resolver"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/lib/init-docs.js",
|
|
16
|
+
"src/create-quiver/lib/init-layout.js",
|
|
17
|
+
"src/create-quiver/lib/template-resolver.js",
|
|
18
|
+
"src/create-quiver/lib/state.js",
|
|
19
|
+
"tests/lib/template-resolver.test.js",
|
|
20
|
+
"tests/lib/quiver-internal-layout.test.js",
|
|
21
|
+
"specs/quiver-v21-ai-first-layout/STATUS.md",
|
|
22
|
+
"specs/quiver-v21-ai-first-layout/EVIDENCE_REPORT.md",
|
|
23
|
+
"specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/CLOSURE_BRIEF.md",
|
|
24
|
+
"specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/slice.json"
|
|
25
|
+
],
|
|
26
|
+
"depends_on": [
|
|
27
|
+
"slice-01-init-profiles-dry-run"
|
|
28
|
+
],
|
|
29
|
+
"parallel_safe": "after_dependencies",
|
|
30
|
+
"parallel_safe_reason": "Builds on the layout planner from slice-01.",
|
|
31
|
+
"must": [
|
|
32
|
+
"Create `.quiver/state.json` and `.quiver/config.json` as versionable metadata.",
|
|
33
|
+
"Create `.quiver/.gitignore` that ignores cache, runs, and worktrees.",
|
|
34
|
+
"Define internal paths for scans, templates, cache, runs, and worktrees.",
|
|
35
|
+
"Resolve templates from the packaged CLI by default.",
|
|
36
|
+
"Support `.quiver/templates/` only when templates are explicitly exported.",
|
|
37
|
+
"Keep legacy `docs-template/` readable as fallback when present."
|
|
38
|
+
],
|
|
39
|
+
"not_included": [
|
|
40
|
+
"Changing default generated docs set.",
|
|
41
|
+
"Moving analyze scan output.",
|
|
42
|
+
"Migrating existing projects."
|
|
43
|
+
],
|
|
44
|
+
"acceptance": [
|
|
45
|
+
"Default init planning includes `.quiver/state.json`, `.quiver/config.json`, and `.quiver/.gitignore`.",
|
|
46
|
+
"Runtime ignored folders do not appear as versionable files.",
|
|
47
|
+
"Commands can resolve templates without a project-level `docs-template/`.",
|
|
48
|
+
"Legacy `docs-template/` remains readable when present."
|
|
49
|
+
],
|
|
50
|
+
"tests": [
|
|
51
|
+
"node --test tests/lib/template-resolver.test.js tests/lib/quiver-internal-layout.test.js tests/lib/init-layout.test.js",
|
|
52
|
+
"git diff --check"
|
|
53
|
+
],
|
|
54
|
+
"estimated_hours": 6,
|
|
55
|
+
"actual_hours": 6,
|
|
56
|
+
"status": "completed",
|
|
57
|
+
"blocked_reason": null
|
|
58
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-03: Generation profiles and visible contract
|
|
2
|
+
|
|
3
|
+
## Resumen de lo realizado
|
|
4
|
+
|
|
5
|
+
Se implemento la escritura real por perfiles de init. El perfil default genera un contrato AI-first visible sin `docs-template/`, sin `tools/scripts/` y sin spec placeholder; `--minimal` reduce la salida al contrato esencial de onboarding; `--full` conserva el layout amplio de compatibilidad.
|
|
6
|
+
|
|
7
|
+
## Validacion contra criterios de aceptacion
|
|
8
|
+
|
|
9
|
+
- [x] Default limpio.
|
|
10
|
+
- [x] Minimal esencial.
|
|
11
|
+
- [x] Full compatible.
|
|
12
|
+
- [x] Scripts validos por perfil.
|
|
13
|
+
- [x] Archivos existentes preservados.
|
|
14
|
+
|
|
15
|
+
## Cambios relevantes
|
|
16
|
+
|
|
17
|
+
- `initializeProjectDocs()` ahora recibe `profile`, `legacyScripts` e `includeTemplates`.
|
|
18
|
+
- Default y minimal ya no copian templates visibles, scripts Bash legacy ni specs placeholder.
|
|
19
|
+
- `--full` mantiene docs amplios, scripts legacy, spec template y `docs-template/`.
|
|
20
|
+
- Los scripts de `package.json` se generan segun perfil para evitar comandos que apunten a archivos ausentes.
|
|
21
|
+
- Los archivos existentes se preservan por defecto.
|
|
22
|
+
- Smokes de init cubren default, minimal y full.
|
|
23
|
+
|
|
24
|
+
## Pendientes
|
|
25
|
+
|
|
26
|
+
No quedan pendientes dentro de este slice. La adaptacion de comandos para repos sin specs corresponde a `slice-05`.
|
|
27
|
+
|
|
28
|
+
## Riesgos remanentes
|
|
29
|
+
|
|
30
|
+
`smoke-create-quiver.sh` conserva escenarios historicos bajo `--full`; los escenarios default sin specs se cierran completamente en `slice-05` y `slice-08`.
|
|
31
|
+
|
|
32
|
+
## Recomendaciones futuras
|
|
33
|
+
|
|
34
|
+
Mantener cualquier asset adicional detras de flags explicitos para que el default siga siendo pequeno y legible.
|