create-quiver 0.15.4 → 0.16.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/.github/pull_request_template.md +17 -0
- package/.github/workflows/ci.yml +76 -0
- package/.markdown-link-check.json +15 -0
- package/.markdownlint.json +11 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/approvals.json +5 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/decisions.md +2 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/requirement.md +0 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/snapshots/20260609T191439Z/docs/INDEX.md +97 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/snapshots/20260609T191439Z/manifest.json +61 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/state.json +28 -0
- package/ACTIVE_SLICES.md +43 -0
- package/ARCHITECTURE.md +133 -0
- package/CHANGELOG.md +12 -0
- package/CONTRIBUTING.md +174 -9
- package/README.md +10 -1
- package/ROADMAP.md +4 -0
- package/SECURITY.md +9 -2
- package/auditoria-ux-ui-performance-documentacion.md +705 -0
- package/copys-landing-page.md +244 -0
- package/docs/AI_CONTEXT.md.es.template +3 -1
- package/docs/AI_CONTEXT.md.template +3 -1
- package/docs/CLI_UX_GUIDE.md +9 -1
- package/docs/COMMANDS.md.template +20 -6
- package/docs/GITFLOW_PR_GUIDE.md +73 -11
- package/docs/GITFLOW_PR_GUIDE.md.es.template +61 -2
- package/docs/GITFLOW_PR_GUIDE.md.template +72 -10
- package/docs/INDEX.md +1 -0
- package/docs/QUICK.md.template +2 -1
- package/docs/STANDARD.md.template +2 -1
- package/docs/WORKFLOW.md.es.template +3 -1
- package/docs/WORKFLOW.md.template +6 -4
- package/docs/ai/ACTIVE_SLICE.md +61 -0
- package/docs/getting-started/installation.md +7 -0
- package/docs/reference/commands.md +104 -6
- package/docs/reference/slice-schema.md +37 -0
- package/docs/schema/slice.schema.json +221 -0
- package/docs/specs/01-spec/01-slice/01-slice.json +36 -0
- package/docs/specs/01-spec/01-slice/01-slice.md +106 -0
- package/docs/specs/01-spec/01-slice/CLOSURE_BRIEF.md +80 -0
- package/docs/specs/01-spec/01-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/02-slice/02-slice.json +36 -0
- package/docs/specs/01-spec/02-slice/02-slice.md +108 -0
- package/docs/specs/01-spec/02-slice/CLOSURE_BRIEF.md +88 -0
- package/docs/specs/01-spec/02-slice/EXECUTION_BRIEF.md +40 -0
- package/docs/specs/01-spec/03-slice/03-slice.json +36 -0
- package/docs/specs/01-spec/03-slice/03-slice.md +103 -0
- package/docs/specs/01-spec/03-slice/CLOSURE_BRIEF.md +54 -0
- package/docs/specs/01-spec/03-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/04-slice/04-slice.json +36 -0
- package/docs/specs/01-spec/04-slice/04-slice.md +107 -0
- package/docs/specs/01-spec/04-slice/CLOSURE_BRIEF.md +46 -0
- package/docs/specs/01-spec/04-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/05-slice/05-slice.json +36 -0
- package/docs/specs/01-spec/05-slice/05-slice.md +106 -0
- package/docs/specs/01-spec/05-slice/CLOSURE_BRIEF.md +84 -0
- package/docs/specs/01-spec/05-slice/EXECUTION_BRIEF.md +109 -0
- package/docs/specs/01-spec/06-slice/06-slice.json +36 -0
- package/docs/specs/01-spec/06-slice/06-slice.md +107 -0
- package/docs/specs/01-spec/06-slice/CLOSURE_BRIEF.md +67 -0
- package/docs/specs/01-spec/06-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/07-slice/07-slice.json +36 -0
- package/docs/specs/01-spec/07-slice/07-slice.md +105 -0
- package/docs/specs/01-spec/07-slice/CLOSURE_BRIEF.md +71 -0
- package/docs/specs/01-spec/07-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/08-slice/08-slice.json +36 -0
- package/docs/specs/01-spec/08-slice/08-slice.md +105 -0
- package/docs/specs/01-spec/08-slice/CLOSURE_BRIEF.md +114 -0
- package/docs/specs/01-spec/08-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/CLOSURE_BRIEF.md +87 -0
- package/docs/specs/01-spec/spec.md +197 -0
- package/docs/workflows/full-ai-spec-to-pr.md +46 -3
- package/i18n/es/docs/GITFLOW_PR_GUIDE.md.template +38 -1
- package/package.json +27 -1
- package/pr.md +154 -0
- package/scripts/package-quiver.sh +82 -2
- package/scripts/release-quiver.sh +14 -3
- package/specs/[project-name]/slices/pr.md.template +19 -0
- package/specs/quiver-v43-cli-i18n-audit-release-readiness/command-language-mode-matrix.json +91 -0
- package/specs/quiver-v50-audit-trust-foundation/EVIDENCE_REPORT.md +151 -0
- package/specs/quiver-v50-audit-trust-foundation/EXECUTION_PLAN.md +34 -0
- package/specs/quiver-v50-audit-trust-foundation/SPEC.md +113 -0
- package/specs/quiver-v50-audit-trust-foundation/STATUS.md +26 -0
- package/specs/quiver-v50-audit-trust-foundation/pr.md +120 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/slice.json +57 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/CLOSURE_BRIEF.md +24 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/EXECUTION_BRIEF.md +67 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/slice.json +71 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/CLOSURE_BRIEF.md +24 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/EXECUTION_BRIEF.md +71 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/slice.json +81 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/CLOSURE_BRIEF.md +22 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/slice.json +56 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/CLOSURE_BRIEF.md +23 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/EXECUTION_BRIEF.md +68 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/slice.json +84 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/CLOSURE_BRIEF.md +25 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/EXECUTION_BRIEF.md +73 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/slice.json +72 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/CLOSURE_BRIEF.md +22 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/slice.json +74 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/CLOSURE_BRIEF.md +29 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/EXECUTION_BRIEF.md +74 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/slice.json +81 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/EVIDENCE_REPORT.md +145 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/EXECUTION_PLAN.md +32 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/SPEC.md +109 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/STATUS.md +25 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/pr.md +69 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/slice.json +56 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/slice.json +68 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/CLOSURE_BRIEF.md +25 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/EXECUTION_BRIEF.md +65 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/pr.md +134 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/slice.json +80 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/EXECUTION_BRIEF.md +80 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/pr.md +159 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/slice.json +102 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/CLOSURE_BRIEF.md +25 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/EXECUTION_BRIEF.md +74 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/pr.md +147 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/slice.json +91 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/CLOSURE_BRIEF.md +28 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/EXECUTION_BRIEF.md +73 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/pr.md +146 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/slice.json +100 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/EXECUTION_BRIEF.md +76 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/pr.md +155 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/slice.json +111 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md +95 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/EXECUTION_PLAN.md +31 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/SPEC.md +107 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/STATUS.md +22 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/pr.md +69 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/slice.json +62 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/EXECUTION_BRIEF.md +71 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/pr.md +146 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/slice.json +106 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/EXECUTION_BRIEF.md +67 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/pr.md +144 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json +86 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/EXECUTION_BRIEF.md +75 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/pr.md +159 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json +105 -0
- package/src/create-quiver/commands/changelog.js +93 -0
- package/src/create-quiver/commands/config.js +16 -5
- package/src/create-quiver/commands/evidence.js +33 -2
- package/src/create-quiver/commands/flow.js +1 -0
- package/src/create-quiver/commands/graph.js +8 -2
- package/src/create-quiver/commands/plan.js +6 -0
- package/src/create-quiver/commands/spec.js +28 -13
- package/src/create-quiver/index.js +294 -94
- package/src/create-quiver/lib/ai/github.js +5 -2
- package/src/create-quiver/lib/ai/spec-templates.js +19 -0
- package/src/create-quiver/lib/cli/command-registry.js +71 -0
- package/src/create-quiver/lib/cli/parser.js +14 -0
- package/src/create-quiver/lib/evidence.js +161 -6
- package/src/create-quiver/lib/git.js +99 -0
- package/src/create-quiver/lib/i18n/messages/en.js +52 -7
- package/src/create-quiver/lib/i18n/messages/es.js +54 -9
- package/src/create-quiver/lib/init-docs.js +1 -1
- package/src/create-quiver/lib/init-layout.js +9 -8
- package/src/create-quiver/lib/lifecycle.js +24 -26
- package/src/create-quiver/lib/readiness.js +67 -56
- package/src/create-quiver/lib/spec-worktrees.js +16 -34
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://quiver.dev/schemas/slice.schema.json",
|
|
4
|
+
"title": "Quiver slice.json",
|
|
5
|
+
"description": "Schema for executable Quiver slice contracts. It is derived from current runtime validation in src/create-quiver/commands/spec.js, src/create-quiver/lib/slice.js, src/create-quiver/lib/readiness.js, and generated slice output in src/create-quiver/lib/ai/spec-generator.js.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"slice_id",
|
|
10
|
+
"ticket",
|
|
11
|
+
"type",
|
|
12
|
+
"title",
|
|
13
|
+
"objective",
|
|
14
|
+
"description",
|
|
15
|
+
"git",
|
|
16
|
+
"must",
|
|
17
|
+
"not_included",
|
|
18
|
+
"acceptance",
|
|
19
|
+
"files",
|
|
20
|
+
"tests",
|
|
21
|
+
"estimated_hours",
|
|
22
|
+
"status"
|
|
23
|
+
],
|
|
24
|
+
"properties": {
|
|
25
|
+
"slice_id": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"pattern": "^slice-[A-Za-z0-9][A-Za-z0-9._-]*$",
|
|
28
|
+
"description": "Directory-local slice id. Runtime spec validation also requires this value to match the parent slice directory name."
|
|
29
|
+
},
|
|
30
|
+
"ticket": {
|
|
31
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
32
|
+
},
|
|
33
|
+
"type": {
|
|
34
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
35
|
+
},
|
|
36
|
+
"title": {
|
|
37
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
38
|
+
},
|
|
39
|
+
"objective": {
|
|
40
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
41
|
+
},
|
|
42
|
+
"description": {
|
|
43
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
44
|
+
},
|
|
45
|
+
"git": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"additionalProperties": false,
|
|
48
|
+
"required": [
|
|
49
|
+
"branch_type",
|
|
50
|
+
"base_branch",
|
|
51
|
+
"branch_slug",
|
|
52
|
+
"branch_name"
|
|
53
|
+
],
|
|
54
|
+
"properties": {
|
|
55
|
+
"branch_type": {
|
|
56
|
+
"$ref": "#/definitions/gitRefPart",
|
|
57
|
+
"description": "Current slice start runtime supports feature, bugfix, and hotfix; historical slices may use other non-empty types."
|
|
58
|
+
},
|
|
59
|
+
"base_branch": {
|
|
60
|
+
"$ref": "#/definitions/gitRefPart"
|
|
61
|
+
},
|
|
62
|
+
"branch_slug": {
|
|
63
|
+
"$ref": "#/definitions/gitRefPart"
|
|
64
|
+
},
|
|
65
|
+
"branch_name": {
|
|
66
|
+
"$ref": "#/definitions/gitRef"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"ui_scope": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"additionalProperties": false,
|
|
73
|
+
"properties": {
|
|
74
|
+
"routes": {
|
|
75
|
+
"$ref": "#/definitions/stringList"
|
|
76
|
+
},
|
|
77
|
+
"components": {
|
|
78
|
+
"$ref": "#/definitions/stringList"
|
|
79
|
+
},
|
|
80
|
+
"layouts": {
|
|
81
|
+
"$ref": "#/definitions/stringList"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"must": {
|
|
86
|
+
"$ref": "#/definitions/stringList"
|
|
87
|
+
},
|
|
88
|
+
"not_included": {
|
|
89
|
+
"$ref": "#/definitions/stringList"
|
|
90
|
+
},
|
|
91
|
+
"acceptance": {
|
|
92
|
+
"$ref": "#/definitions/stringList"
|
|
93
|
+
},
|
|
94
|
+
"files": {
|
|
95
|
+
"allOf": [
|
|
96
|
+
{
|
|
97
|
+
"$ref": "#/definitions/pathList"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"type": "array",
|
|
101
|
+
"minItems": 1
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"description": "Legacy and still-required write scope. Current check-slice local validation requires this array to exist."
|
|
105
|
+
},
|
|
106
|
+
"expected_read_paths": {
|
|
107
|
+
"$ref": "#/definitions/pathList"
|
|
108
|
+
},
|
|
109
|
+
"allowed_write_paths": {
|
|
110
|
+
"$ref": "#/definitions/pathList",
|
|
111
|
+
"description": "Preferred write scope for graph and executor tooling. When present and non-empty, runtime scope logic prefers this over files."
|
|
112
|
+
},
|
|
113
|
+
"tests": {
|
|
114
|
+
"$ref": "#/definitions/stringList"
|
|
115
|
+
},
|
|
116
|
+
"documentation": {
|
|
117
|
+
"$ref": "#/definitions/pathList"
|
|
118
|
+
},
|
|
119
|
+
"dependencies": {
|
|
120
|
+
"$ref": "#/definitions/stringList",
|
|
121
|
+
"description": "Legacy dependency field used by older slice graph input."
|
|
122
|
+
},
|
|
123
|
+
"depends_on": {
|
|
124
|
+
"$ref": "#/definitions/stringList",
|
|
125
|
+
"description": "Preferred dependency field. Runtime graph validation normalizes bare slice ids and full spec/slice refs."
|
|
126
|
+
},
|
|
127
|
+
"parallel_safe": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"enum": [
|
|
130
|
+
"after_dependencies",
|
|
131
|
+
"conditional",
|
|
132
|
+
"maybe",
|
|
133
|
+
"never",
|
|
134
|
+
"no",
|
|
135
|
+
"yes"
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"parallel_safe_reason": {
|
|
139
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
140
|
+
},
|
|
141
|
+
"validation_hints": {
|
|
142
|
+
"$ref": "#/definitions/stringList"
|
|
143
|
+
},
|
|
144
|
+
"assumptions": {
|
|
145
|
+
"$ref": "#/definitions/stringList"
|
|
146
|
+
},
|
|
147
|
+
"estimated_hours": {
|
|
148
|
+
"type": "number",
|
|
149
|
+
"minimum": 0
|
|
150
|
+
},
|
|
151
|
+
"actual_hours": {
|
|
152
|
+
"type": [
|
|
153
|
+
"number",
|
|
154
|
+
"null"
|
|
155
|
+
],
|
|
156
|
+
"minimum": 0
|
|
157
|
+
},
|
|
158
|
+
"status": {
|
|
159
|
+
"type": "string",
|
|
160
|
+
"enum": [
|
|
161
|
+
"blocked",
|
|
162
|
+
"cancelled",
|
|
163
|
+
"completed",
|
|
164
|
+
"draft",
|
|
165
|
+
"planned",
|
|
166
|
+
"ready"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
"blocked_reason": {
|
|
170
|
+
"$ref": "#/definitions/nullableString"
|
|
171
|
+
},
|
|
172
|
+
"ready_at": {
|
|
173
|
+
"$ref": "#/definitions/nullableString"
|
|
174
|
+
},
|
|
175
|
+
"started_at": {
|
|
176
|
+
"$ref": "#/definitions/nullableString"
|
|
177
|
+
},
|
|
178
|
+
"completed_at": {
|
|
179
|
+
"$ref": "#/definitions/nullableString"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"definitions": {
|
|
183
|
+
"nonEmptyString": {
|
|
184
|
+
"type": "string",
|
|
185
|
+
"pattern": "\\S"
|
|
186
|
+
},
|
|
187
|
+
"nullableString": {
|
|
188
|
+
"type": [
|
|
189
|
+
"string",
|
|
190
|
+
"null"
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"stringList": {
|
|
194
|
+
"type": "array",
|
|
195
|
+
"items": {
|
|
196
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
197
|
+
},
|
|
198
|
+
"uniqueItems": true
|
|
199
|
+
},
|
|
200
|
+
"projectRelativePath": {
|
|
201
|
+
"type": "string",
|
|
202
|
+
"pattern": "^(?!file:)(?!/)(?![A-Za-z]:[\\\\/])(?!.*(?:^|[\\\\/])\\.\\.(?:[\\\\/]|$)).*\\S.*$",
|
|
203
|
+
"description": "Project-relative path without file URLs, absolute paths, drive roots, or traversal segments. Runtime normalizes Windows separators to POSIX."
|
|
204
|
+
},
|
|
205
|
+
"pathList": {
|
|
206
|
+
"type": "array",
|
|
207
|
+
"items": {
|
|
208
|
+
"$ref": "#/definitions/projectRelativePath"
|
|
209
|
+
},
|
|
210
|
+
"uniqueItems": true
|
|
211
|
+
},
|
|
212
|
+
"gitRefPart": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"pattern": "^(?!/)(?!.*\\.\\.)(?!.*\\\\)(?!.*//)(?!.*\\/$)[A-Za-z0-9._/-]+$"
|
|
215
|
+
},
|
|
216
|
+
"gitRef": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"pattern": "^(?!/)(?!.*\\.\\.)(?!.*\\\\)(?!.*//)(?!.*\\/$)[A-Za-z0-9._/-]+$"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "01-slice",
|
|
3
|
+
"slice_number": "01",
|
|
4
|
+
"title": "Snapshot verificable de ramas",
|
|
5
|
+
"objective": "Crear un inventario auditable de ramas locales y remotas con base, SHA, fecha, ahead/behind, frescura del dato y clasificacion inicial.",
|
|
6
|
+
"problem": "Evita tomar decisiones sobre ramas usando informacion incompleta, stale o ambigua.",
|
|
7
|
+
"value_outcome": "Reporte de ramas que permite decidir que revisar, extraer, cerrar o conservar sin modificar el repo.",
|
|
8
|
+
"scope": {
|
|
9
|
+
"includes": ["Analisis read-only de refs", "Clasificacion documental", "Registro de frescura del snapshot"],
|
|
10
|
+
"excludes": ["Fetch sin aprobacion", "Merge", "Rebase", "Push", "Eliminacion de ramas", "Implementacion de codigo"]
|
|
11
|
+
},
|
|
12
|
+
"actors": ["Tech Lead", "Maintainer", "Reviewer", "Implementador futuro"],
|
|
13
|
+
"preconditions": ["Repositorio Git disponible", "Refs locales/remotos presentes en snapshot local"],
|
|
14
|
+
"inputs": ["Refs de Git", "origin/HEAD", "origin/main", "Logs", "Metadatos de commits"],
|
|
15
|
+
"outputs": ["Inventario de ramas", "Clasificacion inicial", "Riesgos por rama"],
|
|
16
|
+
"workflow": [
|
|
17
|
+
{"step": 1, "name": "Detectar base", "description": "Detectar rama base desde origin/HEAD o convenciones conocidas."},
|
|
18
|
+
{"step": 2, "name": "Listar refs", "description": "Listar ramas locales y remotas."},
|
|
19
|
+
{"step": 3, "name": "Calcular metadata", "description": "Calcular SHA, fecha, ahead/behind y merge-base."},
|
|
20
|
+
{"step": 4, "name": "Clasificar", "description": "Asignar estado no destructivo a cada rama."}
|
|
21
|
+
],
|
|
22
|
+
"business_rules": ["ahead=0 no autoriza eliminacion", "main local divergida no es base segura", "Toda eliminacion requiere aprobacion"],
|
|
23
|
+
"validations": ["Cada rama tiene SHA", "Cada rama tiene fecha", "Local/remota diferenciado", "Frescura registrada"],
|
|
24
|
+
"error_cases": ["Sin origin/HEAD", "Sin merge-base", "Refs remotos stale"],
|
|
25
|
+
"acceptance_criteria": ["Todas las ramas abiertas aparecen", "Ninguna rama se marca eliminable sin aprobacion", "Se registra fecha y SHA del snapshot", "ahead=0 queda como sin delta"],
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"functional": [],
|
|
28
|
+
"technical": ["Git"],
|
|
29
|
+
"external": [],
|
|
30
|
+
"depends_on_slices": []
|
|
31
|
+
},
|
|
32
|
+
"implementation_order": 1,
|
|
33
|
+
"slicing_rationale": "Un snapshot confiable reduce riesgo antes de cualquier decision tecnica.",
|
|
34
|
+
"risks": ["Snapshot remoto stale"],
|
|
35
|
+
"open_questions": ["Se autorizara fetch antes de acciones finales?"]
|
|
36
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# 01-slice - Snapshot verificable de ramas
|
|
2
|
+
|
|
3
|
+
## 1. Nombre del slice
|
|
4
|
+
|
|
5
|
+
Snapshot verificable de ramas.
|
|
6
|
+
|
|
7
|
+
## 2. Objetivo del slice
|
|
8
|
+
|
|
9
|
+
Crear un inventario auditable de ramas locales y remotas con base, SHA, fecha, ahead/behind, frescura del dato y clasificacion inicial.
|
|
10
|
+
|
|
11
|
+
## 3. Problema puntual que resuelve
|
|
12
|
+
|
|
13
|
+
Evita tomar decisiones sobre ramas usando informacion incompleta, stale o ambigua.
|
|
14
|
+
|
|
15
|
+
## 4. Valor observable que entrega
|
|
16
|
+
|
|
17
|
+
Un reporte de ramas que permite decidir que revisar, extraer, cerrar o conservar sin modificar el repo.
|
|
18
|
+
|
|
19
|
+
## 5. Alcance especifico
|
|
20
|
+
|
|
21
|
+
Incluye analisis read-only de refs y clasificacion documental. No ejecuta acciones destructivas.
|
|
22
|
+
|
|
23
|
+
## 6. Que incluye
|
|
24
|
+
|
|
25
|
+
- Rama base probable.
|
|
26
|
+
- SHA de base y de cada rama.
|
|
27
|
+
- Fecha de ultimo commit.
|
|
28
|
+
- Autor principal.
|
|
29
|
+
- Ahead/behind.
|
|
30
|
+
- Tipo local/remota.
|
|
31
|
+
- Frescura del snapshot.
|
|
32
|
+
- Clasificacion inicial.
|
|
33
|
+
|
|
34
|
+
## 7. Que no incluye
|
|
35
|
+
|
|
36
|
+
- Fetch sin aprobacion.
|
|
37
|
+
- Merge, rebase, push o delete.
|
|
38
|
+
- Implementacion de codigo.
|
|
39
|
+
- Limpieza de ramas.
|
|
40
|
+
|
|
41
|
+
## 8. Actores involucrados
|
|
42
|
+
|
|
43
|
+
Tech Lead, maintainer, reviewer e implementador futuro.
|
|
44
|
+
|
|
45
|
+
## 9. Precondiciones
|
|
46
|
+
|
|
47
|
+
Repositorio Git disponible y refs locales/remotos presentes en el snapshot local.
|
|
48
|
+
|
|
49
|
+
## 10. Entradas necesarias
|
|
50
|
+
|
|
51
|
+
Refs de Git, `origin/HEAD`, `origin/main`, logs y metadatos de commits.
|
|
52
|
+
|
|
53
|
+
## 11. Flujo operativo paso a paso
|
|
54
|
+
|
|
55
|
+
1. Detectar rama base desde `origin/HEAD` o convenciones conocidas.
|
|
56
|
+
2. Listar refs locales y remotos.
|
|
57
|
+
3. Calcular SHA, fecha, ahead/behind y merge-base.
|
|
58
|
+
4. Identificar si el dato remoto requiere verificacion de frescura.
|
|
59
|
+
5. Clasificar cada rama con estado no destructivo.
|
|
60
|
+
6. Registrar riesgos y dudas por rama.
|
|
61
|
+
|
|
62
|
+
## 12. Salidas esperadas
|
|
63
|
+
|
|
64
|
+
Inventario de ramas con clasificacion y evidencia suficiente para planificar slices posteriores.
|
|
65
|
+
|
|
66
|
+
## 13. Reglas de negocio aplicables
|
|
67
|
+
|
|
68
|
+
- `ahead=0` significa sin delta pendiente, no eliminable automaticamente.
|
|
69
|
+
- `main` local divergida no es base segura.
|
|
70
|
+
- Toda recomendacion de eliminacion queda pendiente de aprobacion.
|
|
71
|
+
|
|
72
|
+
## 14. Validaciones
|
|
73
|
+
|
|
74
|
+
- Cada rama tiene SHA, fecha y base probable.
|
|
75
|
+
- Cada rama local/remota esta diferenciada.
|
|
76
|
+
- Cada estado de limpieza distingue cerrable, eliminable, protegida e historica.
|
|
77
|
+
|
|
78
|
+
## 15. Manejo de errores o edge cases
|
|
79
|
+
|
|
80
|
+
- Si no hay `origin/HEAD`, usar candidato documentado y marcar supuesto.
|
|
81
|
+
- Si una rama no tiene merge-base, marcar `requiere revision manual`.
|
|
82
|
+
- Si refs remotos estan stale, marcar `requiere verificacion remota`.
|
|
83
|
+
|
|
84
|
+
## 16. Criterios de aceptacion
|
|
85
|
+
|
|
86
|
+
- Todas las ramas abiertas aparecen en el inventario.
|
|
87
|
+
- Ninguna rama se clasifica como eliminable sin condicion de aprobacion.
|
|
88
|
+
- El reporte incluye fecha y SHA del snapshot.
|
|
89
|
+
- Las ramas con `ahead=0` quedan como `sin delta`, no como borrables.
|
|
90
|
+
- Las ramas conflictivas quedan marcadas para analisis posterior.
|
|
91
|
+
|
|
92
|
+
## 17. Dependencias tecnicas, funcionales o externas
|
|
93
|
+
|
|
94
|
+
Git local y refs existentes.
|
|
95
|
+
|
|
96
|
+
## 18. Depende de slices
|
|
97
|
+
|
|
98
|
+
Ninguno.
|
|
99
|
+
|
|
100
|
+
## 19. Riesgos / decisiones abiertas
|
|
101
|
+
|
|
102
|
+
El snapshot puede quedar obsoleto si no se actualizan refs remotos.
|
|
103
|
+
|
|
104
|
+
## 20. Pendientes / preguntas abiertas
|
|
105
|
+
|
|
106
|
+
Definir si se autorizara `fetch` antes de tomar decisiones remotas finales.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - 01-slice
|
|
2
|
+
|
|
3
|
+
## Resultado
|
|
4
|
+
|
|
5
|
+
Completado.
|
|
6
|
+
|
|
7
|
+
## Evidencia
|
|
8
|
+
|
|
9
|
+
Snapshot local tomado el `2026-06-08T17:04:35-0300`.
|
|
10
|
+
|
|
11
|
+
Base usada: `origin/main` @ `7bc234bbf96fb17d8c44863fac25430b59fc832e`.
|
|
12
|
+
|
|
13
|
+
Estado del working tree al iniciar snapshot: `main...origin/main [ahead 1, behind 44]`.
|
|
14
|
+
|
|
15
|
+
Verificacion remota no destructiva ejecutada el `2026-06-08T17:12:45-0300`:
|
|
16
|
+
|
|
17
|
+
| Campo | Valor |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Remote URL | `git@github-personal:FabriJuncal/quiver.git` |
|
|
20
|
+
| `origin/main` local | `7bc234bbf96fb17d8c44863fac25430b59fc832e` |
|
|
21
|
+
| `main` remoto | `7bc234bbf96fb17d8c44863fac25430b59fc832e` |
|
|
22
|
+
| `origin/main` fresco | Si |
|
|
23
|
+
| Heads remotos actuales | 10 |
|
|
24
|
+
| Remote-tracking refs locales bajo `origin` | 13 |
|
|
25
|
+
|
|
26
|
+
Remote-tracking refs locales stale detectados, sin pruning automatico:
|
|
27
|
+
|
|
28
|
+
- `origin/feature/QUIVER-52-02-v52-generated-cli-reference`
|
|
29
|
+
- `origin/feature/QUIVER-52-03-v52-release-package-hygiene`
|
|
30
|
+
|
|
31
|
+
Resumen de refs revisados:
|
|
32
|
+
|
|
33
|
+
| Metrica | Valor |
|
|
34
|
+
|---|---:|
|
|
35
|
+
| Total refs revisados, excluyendo `origin/main` | 76 |
|
|
36
|
+
| Locales | 65 |
|
|
37
|
+
| Remotos | 11 |
|
|
38
|
+
| Sin delta contra `origin/main` | 60 |
|
|
39
|
+
| Con commits por encima de `origin/main` | 16 |
|
|
40
|
+
| Con conflictos textuales probables por `merge-tree` | 13 |
|
|
41
|
+
| Sin merge-base / desconocidos | 0 |
|
|
42
|
+
|
|
43
|
+
Refs con commits por encima de `origin/main`:
|
|
44
|
+
|
|
45
|
+
| Ref | Ahead | Behind | Conflicto textual | Estado |
|
|
46
|
+
|---|---:|---:|---|---|
|
|
47
|
+
| `backup/QUIVER-52-03-before-squash` | 3 | 2 | No | revisar como backup, no merge directo |
|
|
48
|
+
| `backup/main-before-pull-v31` | 9 | 111 | Si | conflicto / backup obsoleto |
|
|
49
|
+
| `docs/QUIVER-02-decision-log-context-checkpoint` | 1 | 326 | Si | conflicto / revert viejo |
|
|
50
|
+
| `drafts/v19-v22-orchestration-followups` | 1 | 286 | No | revisar como draft documental |
|
|
51
|
+
| `feature/QUIVER-01-ci-matrix-verified` | 2 | 300 | Si | revisar/extraccion manual |
|
|
52
|
+
| `feature/QUIVER-03-project-map-reading-order` | 1 | 324 | Si | conflicto / revert viejo |
|
|
53
|
+
| `feature/QUIVER-20-ai-cli-orchestration` | 1 | 253 | Si | conflicto / probablemente obsoleto |
|
|
54
|
+
| `feature/QUIVER-46-49-cli-modernization` | 3 | 44 | Si | fuente de extraccion, no merge completo |
|
|
55
|
+
| `feature/QUIVER-50-01-runtime-minimum-and-package-metadata` | 1 | 38 | Si | extraccion conceptual separada |
|
|
56
|
+
| `feature/QUIVER-50-03-v50-security-reporting` | 1 | 38 | Si | extraccion documental manual |
|
|
57
|
+
| `feature/QUIVER-50-06-contributor-and-architecture-docs` | 1 | 38 | Si | extraccion documental manual |
|
|
58
|
+
| `main` | 1 | 44 | Si | divergida, no usar como base |
|
|
59
|
+
| `origin/drafts/v19-v22-orchestration-followups` | 1 | 286 | No | duplicado remoto de draft |
|
|
60
|
+
| `origin/feature/QUIVER-01-ci-matrix-verified` | 2 | 300 | Si | duplicado remoto para revisar |
|
|
61
|
+
| `origin/feature/QUIVER-20-ai-cli-orchestration` | 1 | 253 | Si | duplicado remoto obsoleto |
|
|
62
|
+
| `origin/feature/QUIVER-46-49-cli-modernization` | 3 | 44 | Si | duplicado remoto de fuente de extraccion |
|
|
63
|
+
|
|
64
|
+
## Cambios de comportamiento
|
|
65
|
+
|
|
66
|
+
Ninguno. Solo se ejecutaron comandos Git read-only y `merge-tree`.
|
|
67
|
+
|
|
68
|
+
## Regresiones detectadas
|
|
69
|
+
|
|
70
|
+
Ninguna; no se modifico codigo ni ramas.
|
|
71
|
+
|
|
72
|
+
## Riesgos residuales
|
|
73
|
+
|
|
74
|
+
- No se ejecuto `fetch` ni `prune`; hay remote-tracking refs locales stale documentados.
|
|
75
|
+
- `merge-tree` cubre conflicto textual, no conflicto semantico ni de contrato.
|
|
76
|
+
- Ramas `ahead=0` quedan como `sin delta`, no como eliminables.
|
|
77
|
+
|
|
78
|
+
## Decision sobre ramas
|
|
79
|
+
|
|
80
|
+
No se cierra ni elimina ninguna rama. Las ramas fuente de extraccion quedan retenidas hasta completar la matriz de extraccion.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - 01-slice
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
Generar un snapshot verificable de ramas sin modificar el repo.
|
|
6
|
+
|
|
7
|
+
## Base segura
|
|
8
|
+
|
|
9
|
+
Usar `origin/main` y registrar su SHA exacto al momento de ejecucion.
|
|
10
|
+
|
|
11
|
+
## Archivos candidatos
|
|
12
|
+
|
|
13
|
+
Solo documentos de evidencia del slice si se implementa documentacion posterior.
|
|
14
|
+
|
|
15
|
+
## Archivos excluidos
|
|
16
|
+
|
|
17
|
+
Codigo fuente, package files, ramas Git y configuracion remota.
|
|
18
|
+
|
|
19
|
+
## Funcionalidad existente afectada
|
|
20
|
+
|
|
21
|
+
Ninguna. Este slice es read-only.
|
|
22
|
+
|
|
23
|
+
## Matriz antes/despues
|
|
24
|
+
|
|
25
|
+
No aplica porque no modifica comportamiento.
|
|
26
|
+
|
|
27
|
+
## Validaciones
|
|
28
|
+
|
|
29
|
+
- Inventario incluye local/remota.
|
|
30
|
+
- Inventario registra SHA y fecha.
|
|
31
|
+
- No hay acciones destructivas.
|
|
32
|
+
|
|
33
|
+
## Riesgos
|
|
34
|
+
|
|
35
|
+
Snapshot remoto desactualizado si no se autoriza `fetch`.
|
|
36
|
+
|
|
37
|
+
## Rollback
|
|
38
|
+
|
|
39
|
+
No aplica a codigo. Si el reporte es incorrecto, descartarlo y regenerarlo con snapshot fresco.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "02-slice",
|
|
3
|
+
"slice_number": "02",
|
|
4
|
+
"title": "Baseline de comportamiento actual",
|
|
5
|
+
"objective": "Documentar el comportamiento actual que no debe romperse antes de cualquier extraccion o refactor.",
|
|
6
|
+
"problem": "Sin baseline, la regla de no quitar funcionalidad no es verificable.",
|
|
7
|
+
"value_outcome": "Matriz de comportamiento actual para comandos, flags, aliases, outputs, JSON, exit codes, side effects, exports, scripts, templates y docs generadas.",
|
|
8
|
+
"scope": {
|
|
9
|
+
"includes": ["Comandos", "Aliases", "Flags", "Help", "JSON", "Exit codes", "Stdout/stderr", "Archivos generados", "Scripts", "Exports", "Templates", "Docs generadas"],
|
|
10
|
+
"excludes": ["Cambios de parser", "Cambios de comandos", "Bumps de version", "Reemplazo de tests"]
|
|
11
|
+
},
|
|
12
|
+
"actors": ["Tech Lead", "Reviewer", "Usuarios CLI", "Automatizaciones"],
|
|
13
|
+
"preconditions": ["01-slice completado o snapshot aprobado"],
|
|
14
|
+
"inputs": ["CLI actual", "Documentacion actual", "Tests existentes"],
|
|
15
|
+
"outputs": ["Matriz baseline", "Lista de gaps"],
|
|
16
|
+
"workflow": [
|
|
17
|
+
{"step": 1, "name": "Enumerar comandos", "description": "Listar comandos y aliases actuales."},
|
|
18
|
+
{"step": 2, "name": "Registrar contratos", "description": "Registrar flags, help, JSON, exit codes y streams."},
|
|
19
|
+
{"step": 3, "name": "Registrar side effects", "description": "Documentar archivos generados, scripts, exports y templates."},
|
|
20
|
+
{"step": 4, "name": "Marcar gaps", "description": "Listar areas sin evidencia suficiente."}
|
|
21
|
+
],
|
|
22
|
+
"business_rules": ["Ningun slice tecnico avanza sin baseline", "JSON y exit codes son contrato", "Falta de evidencia se marca como riesgo"],
|
|
23
|
+
"validations": ["Cada comando critico tiene entrada", "Cada gap esta marcado", "La matriz permite comparacion futura"],
|
|
24
|
+
"error_cases": ["Comandos con side effects", "Outputs variables", "JSON no soportado"],
|
|
25
|
+
"acceptance_criteria": ["Existe matriz baseline", "Cubre comandos/flags/aliases/help/JSON/exit codes/side effects", "Gaps listados", "Cambios futuros comparan contra baseline"],
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"functional": ["Snapshot aprobado"],
|
|
28
|
+
"technical": ["CLI actual"],
|
|
29
|
+
"external": [],
|
|
30
|
+
"depends_on_slices": ["01-slice"]
|
|
31
|
+
},
|
|
32
|
+
"implementation_order": 2,
|
|
33
|
+
"slicing_rationale": "El baseline transforma no regresion en criterio verificable.",
|
|
34
|
+
"risks": ["Cobertura incompleta de comandos"],
|
|
35
|
+
"open_questions": ["Cuales son comandos criticos minimos si se prioriza?"]
|
|
36
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# 02-slice - Baseline de comportamiento actual
|
|
2
|
+
|
|
3
|
+
## 1. Nombre del slice
|
|
4
|
+
|
|
5
|
+
Baseline de comportamiento actual.
|
|
6
|
+
|
|
7
|
+
## 2. Objetivo del slice
|
|
8
|
+
|
|
9
|
+
Documentar el comportamiento actual que no debe romperse antes de cualquier extraccion o refactor.
|
|
10
|
+
|
|
11
|
+
## 3. Problema puntual que resuelve
|
|
12
|
+
|
|
13
|
+
Sin baseline, la regla de no quitar funcionalidad no es verificable.
|
|
14
|
+
|
|
15
|
+
## 4. Valor observable que entrega
|
|
16
|
+
|
|
17
|
+
Matriz de comportamiento actual para comandos, flags, aliases, outputs, JSON, exit codes, side effects, exports, scripts, templates y docs generadas.
|
|
18
|
+
|
|
19
|
+
## 5. Alcance especifico
|
|
20
|
+
|
|
21
|
+
Crear un contrato de observacion del estado actual. No cambia codigo ni tests.
|
|
22
|
+
|
|
23
|
+
## 6. Que incluye
|
|
24
|
+
|
|
25
|
+
- Inventario de comandos visibles.
|
|
26
|
+
- Aliases y flags.
|
|
27
|
+
- `--help` y `--json`.
|
|
28
|
+
- Exit codes para exito/error.
|
|
29
|
+
- Stdout/stderr esperados.
|
|
30
|
+
- Archivos generados y rutas.
|
|
31
|
+
- Scripts CI relevantes.
|
|
32
|
+
- Exports internos usados por tests o consumidores.
|
|
33
|
+
- Templates y docs generadas.
|
|
34
|
+
|
|
35
|
+
## 7. Que no incluye
|
|
36
|
+
|
|
37
|
+
- Cambios de parser.
|
|
38
|
+
- Cambios de comandos.
|
|
39
|
+
- Bumps de version.
|
|
40
|
+
- Reemplazo de tests.
|
|
41
|
+
|
|
42
|
+
## 8. Actores involucrados
|
|
43
|
+
|
|
44
|
+
Tech Lead, reviewer, usuarios CLI y automatizaciones.
|
|
45
|
+
|
|
46
|
+
## 9. Precondiciones
|
|
47
|
+
|
|
48
|
+
`01-slice` completado o snapshot de base aprobado.
|
|
49
|
+
|
|
50
|
+
## 10. Entradas necesarias
|
|
51
|
+
|
|
52
|
+
CLI actual sobre `origin/main`, documentacion actual y tests existentes.
|
|
53
|
+
|
|
54
|
+
## 11. Flujo operativo paso a paso
|
|
55
|
+
|
|
56
|
+
1. Enumerar comandos y aliases actuales.
|
|
57
|
+
2. Registrar flags por comando.
|
|
58
|
+
3. Capturar comportamiento de ayuda.
|
|
59
|
+
4. Registrar contratos JSON cuando existan.
|
|
60
|
+
5. Registrar exit codes y streams.
|
|
61
|
+
6. Registrar archivos generados y side effects.
|
|
62
|
+
7. Registrar scripts y exports relevantes.
|
|
63
|
+
8. Identificar areas sin evidencia.
|
|
64
|
+
|
|
65
|
+
## 12. Salidas esperadas
|
|
66
|
+
|
|
67
|
+
Matriz de baseline y lista de gaps que bloquean extracciones futuras.
|
|
68
|
+
|
|
69
|
+
## 13. Reglas de negocio aplicables
|
|
70
|
+
|
|
71
|
+
- Ningun slice tecnico puede avanzar sin baseline suficiente.
|
|
72
|
+
- `--json`, exit codes y side effects son contrato funcional.
|
|
73
|
+
- Falta de evidencia se documenta como riesgo, no se asume seguro.
|
|
74
|
+
|
|
75
|
+
## 14. Validaciones
|
|
76
|
+
|
|
77
|
+
- Cada comando critico tiene entrada en la matriz.
|
|
78
|
+
- Cada cambio futuro puede referenciar baseline.
|
|
79
|
+
- Los gaps estan marcados explicitamente.
|
|
80
|
+
|
|
81
|
+
## 15. Manejo de errores o edge cases
|
|
82
|
+
|
|
83
|
+
- Si un comando no puede ejecutarse sin side effects, registrar precondiciones y no forzarlo.
|
|
84
|
+
- Si no existe JSON mode, registrar como no soportado.
|
|
85
|
+
- Si hay outputs variables, registrar partes estables.
|
|
86
|
+
|
|
87
|
+
## 16. Criterios de aceptacion
|
|
88
|
+
|
|
89
|
+
- Existe matriz baseline antes de extraer codigo.
|
|
90
|
+
- Baseline cubre comandos, flags, aliases, help, JSON, exit codes y side effects.
|
|
91
|
+
- Las areas no cubiertas estan listadas como riesgos.
|
|
92
|
+
- Ningun cambio futuro puede declararse no regresivo sin comparar contra este baseline.
|
|
93
|
+
|
|
94
|
+
## 17. Dependencias tecnicas, funcionales o externas
|
|
95
|
+
|
|
96
|
+
Snapshot aprobado y acceso a CLI/documentacion actual.
|
|
97
|
+
|
|
98
|
+
## 18. Depende de slices
|
|
99
|
+
|
|
100
|
+
`01-slice`.
|
|
101
|
+
|
|
102
|
+
## 19. Riesgos / decisiones abiertas
|
|
103
|
+
|
|
104
|
+
Puede ser costoso cubrir todos los comandos; si se prioriza, debe quedar explicito.
|
|
105
|
+
|
|
106
|
+
## 20. Pendientes / preguntas abiertas
|
|
107
|
+
|
|
108
|
+
Definir comandos criticos minimos si el baseline completo requiere varias iteraciones.
|