projectstore-codex 0.0.1 → 0.28.2
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/.codex-plugin/plugin.json +48 -0
- package/README.md +15 -7
- package/bin/projectstore-codex.mjs +88 -0
- package/hooks/hooks.json +59 -0
- package/node_modules/projectstore/.claude-plugin/marketplace.json +40 -0
- package/node_modules/projectstore/.claude-plugin/plugin.json +23 -0
- package/node_modules/projectstore/.mcp.json +14 -0
- package/node_modules/projectstore/AGENTS.md +26 -0
- package/node_modules/projectstore/LICENSE +21 -0
- package/node_modules/projectstore/README.md +284 -0
- package/node_modules/projectstore/agents/archaeologist.md +76 -0
- package/node_modules/projectstore/agents/clerk.md +93 -0
- package/node_modules/projectstore/agents/critic.md +94 -0
- package/node_modules/projectstore/agents/librarian.md +81 -0
- package/node_modules/projectstore/agents/planner.md +80 -0
- package/node_modules/projectstore/agents/reviewer.md +98 -0
- package/node_modules/projectstore/bin/projectstore.mjs +7 -0
- package/node_modules/projectstore/commands/adr.md +57 -0
- package/node_modules/projectstore/commands/agents.md +180 -0
- package/node_modules/projectstore/commands/bind.md +128 -0
- package/node_modules/projectstore/commands/codemap.md +50 -0
- package/node_modules/projectstore/commands/concept.md +17 -0
- package/node_modules/projectstore/commands/doctor.md +166 -0
- package/node_modules/projectstore/commands/epic.md +40 -0
- package/node_modules/projectstore/commands/graph.md +56 -0
- package/node_modules/projectstore/commands/kanban.md +40 -0
- package/node_modules/projectstore/commands/meeting.md +17 -0
- package/node_modules/projectstore/commands/reconcile.md +73 -0
- package/node_modules/projectstore/commands/research.md +17 -0
- package/node_modules/projectstore/commands/review.md +89 -0
- package/node_modules/projectstore/commands/runbook.md +17 -0
- package/node_modules/projectstore/commands/scaffold.md +23 -0
- package/node_modules/projectstore/commands/search.md +22 -0
- package/node_modules/projectstore/commands/spec.md +91 -0
- package/node_modules/projectstore/commands/status.md +27 -0
- package/node_modules/projectstore/commands/statusline.md +46 -0
- package/node_modules/projectstore/commands/story.md +113 -0
- package/node_modules/projectstore/docs/extending.md +172 -0
- package/node_modules/projectstore/docs/getting-started.md +133 -0
- package/node_modules/projectstore/docs/harnesses.md +176 -0
- package/node_modules/projectstore/docs/how-it-works.md +263 -0
- package/node_modules/projectstore/docs/images/loop-light.svg +94 -0
- package/node_modules/projectstore/docs/images/loop.svg +93 -0
- package/node_modules/projectstore/docs/images/statusline-hud.png +0 -0
- package/node_modules/projectstore/docs/images/team-light.svg +79 -0
- package/node_modules/projectstore/docs/images/team.svg +79 -0
- package/node_modules/projectstore/harnesses/claude-code.json +483 -0
- package/node_modules/projectstore/harnesses/codex.json +332 -0
- package/node_modules/projectstore/hooks/hooks.json +59 -0
- package/node_modules/projectstore/hooks/pre-compact.mjs +121 -0
- package/node_modules/projectstore/hooks/session-rules.mjs +63 -0
- package/node_modules/projectstore/hooks/session-start.mjs +301 -0
- package/node_modules/projectstore/hooks/session-stop.mjs +84 -0
- package/node_modules/projectstore/package.json +70 -0
- package/node_modules/projectstore/scaffold/checklists.json +88 -0
- package/node_modules/projectstore/scaffold/headings.json +171 -0
- package/node_modules/projectstore/scaffold/layouts/engineering.json +85 -0
- package/node_modules/projectstore/scripts/binding.mjs +165 -0
- package/node_modules/projectstore/scripts/build-adapters.mjs +264 -0
- package/node_modules/projectstore/scripts/cli.mjs +595 -0
- package/node_modules/projectstore/scripts/codemap.mjs +99 -0
- package/node_modules/projectstore/scripts/diff-refs.mjs +127 -0
- package/node_modules/projectstore/scripts/doctor.mjs +2127 -0
- package/node_modules/projectstore/scripts/draft.mjs +261 -0
- package/node_modules/projectstore/scripts/graph.mjs +219 -0
- package/node_modules/projectstore/scripts/harness.mjs +608 -0
- package/node_modules/projectstore/scripts/install-harness.mjs +1387 -0
- package/node_modules/projectstore/scripts/kanban.mjs +174 -0
- package/node_modules/projectstore/scripts/lib.mjs +3085 -0
- package/node_modules/projectstore/scripts/mcp.mjs +391 -0
- package/node_modules/projectstore/scripts/portable-registration.mjs +198 -0
- package/node_modules/projectstore/scripts/provenance.mjs +375 -0
- package/node_modules/projectstore/scripts/query.mjs +490 -0
- package/node_modules/projectstore/scripts/reconcile.mjs +422 -0
- package/node_modules/projectstore/scripts/statusline-launcher.mjs +141 -0
- package/node_modules/projectstore/scripts/statusline.mjs +253 -0
- package/node_modules/projectstore/scripts/story-section.mjs +209 -0
- package/node_modules/projectstore/scripts/surfaces.mjs +421 -0
- package/node_modules/projectstore/scripts/tokens.mjs +449 -0
- package/node_modules/projectstore/scripts/touch-session.mjs +336 -0
- package/node_modules/projectstore/scripts/version-guard.mjs +261 -0
- package/node_modules/projectstore/scripts/worktree.mjs +109 -0
- package/node_modules/projectstore/skills/projectstore-decision-detector/SKILL.md +40 -0
- package/node_modules/projectstore/skills/projectstore-peer-reviewer/SKILL.md +38 -0
- package/node_modules/projectstore/skills/projectstore-story-completion/SKILL.md +50 -0
- package/node_modules/projectstore/skills/projectstore-vault-communication/SKILL.md +96 -0
- package/node_modules/projectstore/templates/claude-md-block.md.tmpl +26 -0
- package/node_modules/projectstore/templates/de/adr.md.tmpl +67 -0
- package/node_modules/projectstore/templates/de/concept.md.tmpl +43 -0
- package/node_modules/projectstore/templates/de/epic.md.tmpl +59 -0
- package/node_modules/projectstore/templates/de/folder-readme.md.tmpl +14 -0
- package/node_modules/projectstore/templates/de/kanban.md.tmpl +36 -0
- package/node_modules/projectstore/templates/de/meeting.md.tmpl +38 -0
- package/node_modules/projectstore/templates/de/research.md.tmpl +47 -0
- package/node_modules/projectstore/templates/de/runbook.md.tmpl +53 -0
- package/node_modules/projectstore/templates/de/spec.md.tmpl +64 -0
- package/node_modules/projectstore/templates/de/story.md.tmpl +76 -0
- package/node_modules/projectstore/templates/de/strings.json +6 -0
- package/node_modules/projectstore/templates/en/adr.md.tmpl +67 -0
- package/node_modules/projectstore/templates/en/concept.md.tmpl +43 -0
- package/node_modules/projectstore/templates/en/epic.md.tmpl +59 -0
- package/node_modules/projectstore/templates/en/folder-readme.md.tmpl +14 -0
- package/node_modules/projectstore/templates/en/kanban.md.tmpl +36 -0
- package/node_modules/projectstore/templates/en/meeting.md.tmpl +38 -0
- package/node_modules/projectstore/templates/en/research.md.tmpl +47 -0
- package/node_modules/projectstore/templates/en/runbook.md.tmpl +53 -0
- package/node_modules/projectstore/templates/en/spec.md.tmpl +64 -0
- package/node_modules/projectstore/templates/en/story.md.tmpl +76 -0
- package/node_modules/projectstore/templates/en/strings.json +6 -0
- package/node_modules/projectstore/templates/es/adr.md.tmpl +67 -0
- package/node_modules/projectstore/templates/es/concept.md.tmpl +43 -0
- package/node_modules/projectstore/templates/es/epic.md.tmpl +59 -0
- package/node_modules/projectstore/templates/es/folder-readme.md.tmpl +14 -0
- package/node_modules/projectstore/templates/es/kanban.md.tmpl +36 -0
- package/node_modules/projectstore/templates/es/meeting.md.tmpl +38 -0
- package/node_modules/projectstore/templates/es/research.md.tmpl +47 -0
- package/node_modules/projectstore/templates/es/runbook.md.tmpl +53 -0
- package/node_modules/projectstore/templates/es/spec.md.tmpl +64 -0
- package/node_modules/projectstore/templates/es/story.md.tmpl +76 -0
- package/node_modules/projectstore/templates/es/strings.json +6 -0
- package/node_modules/projectstore/templates/fr/adr.md.tmpl +67 -0
- package/node_modules/projectstore/templates/fr/concept.md.tmpl +43 -0
- package/node_modules/projectstore/templates/fr/epic.md.tmpl +59 -0
- package/node_modules/projectstore/templates/fr/folder-readme.md.tmpl +14 -0
- package/node_modules/projectstore/templates/fr/kanban.md.tmpl +36 -0
- package/node_modules/projectstore/templates/fr/meeting.md.tmpl +38 -0
- package/node_modules/projectstore/templates/fr/research.md.tmpl +47 -0
- package/node_modules/projectstore/templates/fr/runbook.md.tmpl +53 -0
- package/node_modules/projectstore/templates/fr/spec.md.tmpl +64 -0
- package/node_modules/projectstore/templates/fr/story.md.tmpl +76 -0
- package/node_modules/projectstore/templates/fr/strings.json +6 -0
- package/node_modules/projectstore/templates/ru/adr.md.tmpl +67 -0
- package/node_modules/projectstore/templates/ru/concept.md.tmpl +43 -0
- package/node_modules/projectstore/templates/ru/epic.md.tmpl +59 -0
- package/node_modules/projectstore/templates/ru/folder-readme.md.tmpl +14 -0
- package/node_modules/projectstore/templates/ru/kanban.md.tmpl +36 -0
- package/node_modules/projectstore/templates/ru/meeting.md.tmpl +38 -0
- package/node_modules/projectstore/templates/ru/research.md.tmpl +47 -0
- package/node_modules/projectstore/templates/ru/runbook.md.tmpl +53 -0
- package/node_modules/projectstore/templates/ru/spec.md.tmpl +64 -0
- package/node_modules/projectstore/templates/ru/story.md.tmpl +76 -0
- package/node_modules/projectstore/templates/ru/strings.json +6 -0
- package/node_modules/projectstore/templates/zh/adr.md.tmpl +67 -0
- package/node_modules/projectstore/templates/zh/concept.md.tmpl +43 -0
- package/node_modules/projectstore/templates/zh/epic.md.tmpl +59 -0
- package/node_modules/projectstore/templates/zh/folder-readme.md.tmpl +14 -0
- package/node_modules/projectstore/templates/zh/kanban.md.tmpl +36 -0
- package/node_modules/projectstore/templates/zh/meeting.md.tmpl +38 -0
- package/node_modules/projectstore/templates/zh/research.md.tmpl +47 -0
- package/node_modules/projectstore/templates/zh/runbook.md.tmpl +53 -0
- package/node_modules/projectstore/templates/zh/spec.md.tmpl +64 -0
- package/node_modules/projectstore/templates/zh/story.md.tmpl +76 -0
- package/node_modules/projectstore/templates/zh/strings.json +6 -0
- package/package.json +35 -14
- package/skills/projectstore-adr/SKILL.md +76 -0
- package/skills/projectstore-agents/SKILL.md +50 -0
- package/skills/projectstore-archaeologist/SKILL.md +109 -0
- package/skills/projectstore-bind/SKILL.md +44 -0
- package/skills/projectstore-clerk/SKILL.md +126 -0
- package/skills/projectstore-codemap/SKILL.md +69 -0
- package/skills/projectstore-concept/SKILL.md +36 -0
- package/skills/projectstore-critic/SKILL.md +127 -0
- package/skills/projectstore-decision-detector/SKILL.md +59 -0
- package/skills/projectstore-doctor/SKILL.md +33 -0
- package/skills/projectstore-epic/SKILL.md +59 -0
- package/skills/projectstore-graph/SKILL.md +75 -0
- package/skills/projectstore-kanban/SKILL.md +60 -0
- package/skills/projectstore-librarian/SKILL.md +114 -0
- package/skills/projectstore-meeting/SKILL.md +36 -0
- package/skills/projectstore-peer-reviewer/SKILL.md +57 -0
- package/skills/projectstore-planner/SKILL.md +113 -0
- package/skills/projectstore-reconcile/SKILL.md +92 -0
- package/skills/projectstore-research/SKILL.md +36 -0
- package/skills/projectstore-review/SKILL.md +108 -0
- package/skills/projectstore-reviewer/SKILL.md +131 -0
- package/skills/projectstore-runbook/SKILL.md +36 -0
- package/skills/projectstore-scaffold/SKILL.md +42 -0
- package/skills/projectstore-search/SKILL.md +41 -0
- package/skills/projectstore-spec/SKILL.md +110 -0
- package/skills/projectstore-status/SKILL.md +47 -0
- package/skills/projectstore-statusline/SKILL.md +29 -0
- package/skills/projectstore-story/SKILL.md +132 -0
- package/skills/projectstore-story-completion/SKILL.md +69 -0
- package/skills/projectstore-vault-communication/SKILL.md +115 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: adr
|
|
3
|
+
id: {{id_json}}
|
|
4
|
+
title: {{title_json}}
|
|
5
|
+
status: proposed
|
|
6
|
+
date: {{date}}
|
|
7
|
+
authors: [{{author_json}}]
|
|
8
|
+
tags: {{tags}}
|
|
9
|
+
external_refs: {}
|
|
10
|
+
supersedes: null
|
|
11
|
+
superseded_by: null
|
|
12
|
+
review_status: pending
|
|
13
|
+
reviewed_at: null
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# {{title}}
|
|
17
|
+
|
|
18
|
+
| Campo | Valor |
|
|
19
|
+
|---|---|
|
|
20
|
+
| **Estado** | proposed |
|
|
21
|
+
| **Fecha** | {{date}} |
|
|
22
|
+
| **Autores** | {{author}} |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Contexto
|
|
27
|
+
|
|
28
|
+
<!-- ¿Qué fuerzas están en juego? ¿Por qué hay que decidir ahora? -->
|
|
29
|
+
|
|
30
|
+
## Decisión
|
|
31
|
+
|
|
32
|
+
<!-- La decisión en sí, formulada de forma clara y concisa. -->
|
|
33
|
+
|
|
34
|
+
## Justificación
|
|
35
|
+
|
|
36
|
+
<!-- Por qué esta decisión y no las alternativas. Preferibles razones numeradas. -->
|
|
37
|
+
|
|
38
|
+
## Alternativas consideradas
|
|
39
|
+
|
|
40
|
+
### Alternativa A: {{alternative_a_name}}
|
|
41
|
+
|
|
42
|
+
**Ventajas**:
|
|
43
|
+
-
|
|
44
|
+
|
|
45
|
+
**Inconvenientes**:
|
|
46
|
+
-
|
|
47
|
+
|
|
48
|
+
**Rechazada porque**:
|
|
49
|
+
|
|
50
|
+
## Consecuencias
|
|
51
|
+
|
|
52
|
+
**Positivas**:
|
|
53
|
+
-
|
|
54
|
+
|
|
55
|
+
**Negativas / compromisos**:
|
|
56
|
+
-
|
|
57
|
+
|
|
58
|
+
**Qué cambia en el código / proceso**:
|
|
59
|
+
-
|
|
60
|
+
|
|
61
|
+
## Referencias
|
|
62
|
+
|
|
63
|
+
-
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
*Última actualización: {{date}}*
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: concept
|
|
3
|
+
slug: {{slug_json}}
|
|
4
|
+
title: {{title_json}}
|
|
5
|
+
status: draft
|
|
6
|
+
date: {{date}}
|
|
7
|
+
authors: [{{author_json}}]
|
|
8
|
+
tags: {{tags}}
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# {{title}}
|
|
12
|
+
|
|
13
|
+
## Qué es
|
|
14
|
+
|
|
15
|
+
<!-- Definición en un párrafo. -->
|
|
16
|
+
|
|
17
|
+
## Por qué importa
|
|
18
|
+
|
|
19
|
+
<!-- Contexto, problema que aborda este concepto. -->
|
|
20
|
+
|
|
21
|
+
## Cómo funciona
|
|
22
|
+
|
|
23
|
+
<!-- Mecanismo, componentes, interacciones. -->
|
|
24
|
+
|
|
25
|
+
## Cuándo usarlo / no usarlo
|
|
26
|
+
|
|
27
|
+
**Usar cuando**:
|
|
28
|
+
-
|
|
29
|
+
|
|
30
|
+
**No usar cuando**:
|
|
31
|
+
-
|
|
32
|
+
|
|
33
|
+
## Relacionado
|
|
34
|
+
|
|
35
|
+
-
|
|
36
|
+
|
|
37
|
+
## Referencias
|
|
38
|
+
|
|
39
|
+
-
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
*Última actualización: {{date}}*
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: epic
|
|
3
|
+
id: {{id_json}}
|
|
4
|
+
title: {{title_json}}
|
|
5
|
+
status: planned
|
|
6
|
+
priority: p2
|
|
7
|
+
created: {{date}}
|
|
8
|
+
updated: {{date}}
|
|
9
|
+
external_refs: {}
|
|
10
|
+
tags: {{tags}}
|
|
11
|
+
code_refs: []
|
|
12
|
+
review_status: pending
|
|
13
|
+
reviewed_at: null
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# {{id}}: {{title}}
|
|
17
|
+
|
|
18
|
+
| Campo | Valor |
|
|
19
|
+
|---|---|
|
|
20
|
+
| **Estado** | planned |
|
|
21
|
+
| **Prioridad** | p2 |
|
|
22
|
+
| **Creado** | {{date}} |
|
|
23
|
+
| **Actualizado** | {{date}} |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Objetivo
|
|
28
|
+
|
|
29
|
+
<!-- ¿Cómo se ve el éxito para esta épica? -->
|
|
30
|
+
|
|
31
|
+
## Contexto
|
|
32
|
+
|
|
33
|
+
<!-- Antecedentes, motivación, por qué importa ahora. -->
|
|
34
|
+
|
|
35
|
+
## Historias
|
|
36
|
+
|
|
37
|
+
| Historia | Estado | Descripción |
|
|
38
|
+
|----------|--------|-------------|
|
|
39
|
+
| [story-001](./stories/story-001.md) | planned | |
|
|
40
|
+
|
|
41
|
+
## Resultados esperados
|
|
42
|
+
|
|
43
|
+
- [ ]
|
|
44
|
+
|
|
45
|
+
## Dependencias
|
|
46
|
+
|
|
47
|
+
-
|
|
48
|
+
|
|
49
|
+
## Preguntas abiertas
|
|
50
|
+
|
|
51
|
+
- [ ]
|
|
52
|
+
|
|
53
|
+
## Relacionado
|
|
54
|
+
|
|
55
|
+
-
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
*Última actualización: {{date}}*
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# {{folder_name}}
|
|
2
|
+
|
|
3
|
+
{{folder_description}}
|
|
4
|
+
|
|
5
|
+
## Índice
|
|
6
|
+
|
|
7
|
+
<!-- projectstore mantendrá este índice actualizado cuando se añadan entradas mediante los comandos /projectstore:*. -->
|
|
8
|
+
|
|
9
|
+
| Archivo | Título | Estado | Fecha |
|
|
10
|
+
|---------|--------|--------|-------|
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
*Gestionado por el plugin projectstore. Las ediciones manuales fuera de la tabla del índice se conservan.*
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
kanban-plugin: board
|
|
4
|
+
projectstore: derived
|
|
5
|
+
generated_at: {{generated_at}}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Backlog
|
|
10
|
+
|
|
11
|
+
{{backlog_items}}
|
|
12
|
+
|
|
13
|
+
## Por hacer
|
|
14
|
+
|
|
15
|
+
{{todo_items}}
|
|
16
|
+
|
|
17
|
+
## En curso
|
|
18
|
+
|
|
19
|
+
{{in_progress_items}}
|
|
20
|
+
|
|
21
|
+
## Revisión
|
|
22
|
+
|
|
23
|
+
{{review_items}}
|
|
24
|
+
|
|
25
|
+
## Hecho
|
|
26
|
+
|
|
27
|
+
{{done_items}}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
%% kanban:settings
|
|
33
|
+
```
|
|
34
|
+
{"kanban-plugin":"board","list-collapse":[false,false,false,false,false]}
|
|
35
|
+
```
|
|
36
|
+
%%
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: meeting
|
|
3
|
+
date: {{date}}
|
|
4
|
+
slug: {{slug_json}}
|
|
5
|
+
title: {{title_json}}
|
|
6
|
+
attendees: []
|
|
7
|
+
tags: {{tags}}
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# {{date}} — {{title}}
|
|
11
|
+
|
|
12
|
+
## Asistentes
|
|
13
|
+
|
|
14
|
+
-
|
|
15
|
+
|
|
16
|
+
## Orden del día
|
|
17
|
+
|
|
18
|
+
-
|
|
19
|
+
|
|
20
|
+
## Notas
|
|
21
|
+
|
|
22
|
+
###
|
|
23
|
+
|
|
24
|
+
## Decisiones
|
|
25
|
+
|
|
26
|
+
- [ ]
|
|
27
|
+
|
|
28
|
+
## Tareas
|
|
29
|
+
|
|
30
|
+
- [ ] **{{author}}**:
|
|
31
|
+
|
|
32
|
+
## Seguimiento
|
|
33
|
+
|
|
34
|
+
-
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
*Notas de: {{author}}*
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: research
|
|
3
|
+
slug: {{slug_json}}
|
|
4
|
+
title: {{title_json}}
|
|
5
|
+
status: draft
|
|
6
|
+
date: {{date}}
|
|
7
|
+
authors: [{{author_json}}]
|
|
8
|
+
tags: {{tags}}
|
|
9
|
+
review_status: pending
|
|
10
|
+
reviewed_at: null
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# {{title}}
|
|
14
|
+
|
|
15
|
+
## Pregunta
|
|
16
|
+
|
|
17
|
+
<!-- ¿Qué queremos averiguar? -->
|
|
18
|
+
|
|
19
|
+
## En resumen (TL;DR)
|
|
20
|
+
|
|
21
|
+
<!-- Respuesta en un párrafo. Rellenar después del cuerpo. -->
|
|
22
|
+
|
|
23
|
+
## Método
|
|
24
|
+
|
|
25
|
+
<!-- Cómo lo investigamos: fuentes, experimentos, benchmarks. -->
|
|
26
|
+
|
|
27
|
+
## Hallazgos
|
|
28
|
+
|
|
29
|
+
###
|
|
30
|
+
|
|
31
|
+
## Comparación
|
|
32
|
+
|
|
33
|
+
| Opción | Ventajas | Inconvenientes |
|
|
34
|
+
|--------|----------|----------------|
|
|
35
|
+
| | | |
|
|
36
|
+
|
|
37
|
+
## Conclusión
|
|
38
|
+
|
|
39
|
+
<!-- Qué recomendamos y por qué. -->
|
|
40
|
+
|
|
41
|
+
## Referencias
|
|
42
|
+
|
|
43
|
+
-
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
*Última actualización: {{date}}*
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: runbook
|
|
3
|
+
slug: {{slug_json}}
|
|
4
|
+
title: {{title_json}}
|
|
5
|
+
status: draft
|
|
6
|
+
date: {{date}}
|
|
7
|
+
authors: [{{author_json}}]
|
|
8
|
+
tags: {{tags}}
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# {{title}}
|
|
12
|
+
|
|
13
|
+
## Propósito
|
|
14
|
+
|
|
15
|
+
<!-- Cuándo y por qué usar este runbook. -->
|
|
16
|
+
|
|
17
|
+
## Requisitos previos
|
|
18
|
+
|
|
19
|
+
- [ ]
|
|
20
|
+
|
|
21
|
+
## Pasos
|
|
22
|
+
|
|
23
|
+
### 1.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 2.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Verificación
|
|
36
|
+
|
|
37
|
+
- [ ]
|
|
38
|
+
|
|
39
|
+
## Reversión
|
|
40
|
+
|
|
41
|
+
<!-- Cómo deshacer si algo sale mal. -->
|
|
42
|
+
|
|
43
|
+
## Problemas frecuentes
|
|
44
|
+
|
|
45
|
+
###
|
|
46
|
+
|
|
47
|
+
## Referencias
|
|
48
|
+
|
|
49
|
+
-
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
*Última actualización: {{date}}*
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: spec
|
|
3
|
+
id: {{id_json}}
|
|
4
|
+
title: {{title_json}}
|
|
5
|
+
status: draft
|
|
6
|
+
date: {{date}}
|
|
7
|
+
updated: {{date}}
|
|
8
|
+
authors: [{{author_json}}]
|
|
9
|
+
tags: {{tags}}
|
|
10
|
+
external_refs: {}
|
|
11
|
+
adr: []
|
|
12
|
+
stories: []
|
|
13
|
+
review_status: pending
|
|
14
|
+
reviewed_at: null
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# {{title}}
|
|
18
|
+
|
|
19
|
+
| Campo | Valor |
|
|
20
|
+
|---|---|
|
|
21
|
+
| **Estado** | draft |
|
|
22
|
+
| **Fecha** | {{date}} |
|
|
23
|
+
| **Cubre** | <!-- se rellena desde stories: --> |
|
|
24
|
+
|
|
25
|
+
Los criterios de aceptación de la spec son **adicionales** a los de las historias
|
|
26
|
+
cubiertas: una historia se cierra cuando ambos están en verde (ADR-007).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Cómo lo resolvemos
|
|
31
|
+
|
|
32
|
+
<!-- El enfoque, con referencias a los ADR que lo decidieron: [[../adr/ADR-XXX-...|ADR-XXX]]. -->
|
|
33
|
+
|
|
34
|
+
## Contratos de comportamiento
|
|
35
|
+
|
|
36
|
+
<!-- Numerados, verificables uno a uno. Cada uno describe un resultado observable, no un paso de implementación.
|
|
37
|
+
Para un spike de investigación: preguntas a responder + criterios de salida. -->
|
|
38
|
+
|
|
39
|
+
1.
|
|
40
|
+
2.
|
|
41
|
+
|
|
42
|
+
## Módulos y archivos
|
|
43
|
+
|
|
44
|
+
<!-- Opcional (puede omitirse en spikes): el árbol de ficheros/módulos que gobierna esta spec. -->
|
|
45
|
+
|
|
46
|
+
## Pruebas
|
|
47
|
+
|
|
48
|
+
<!-- Opcional: cómo se verifican los contratos — unitarias, integración, corpus. -->
|
|
49
|
+
|
|
50
|
+
## Aceptación
|
|
51
|
+
|
|
52
|
+
<!-- Casillas. Los puntos de una historia concreta se marcan con "— stories: story-002";
|
|
53
|
+
los puntos sin atribución aplican a TODAS las historias cubiertas. En frontmatter, solo inline flow. -->
|
|
54
|
+
|
|
55
|
+
- [ ] — stories:
|
|
56
|
+
- [ ]
|
|
57
|
+
|
|
58
|
+
## Referencias
|
|
59
|
+
|
|
60
|
+
-
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
*Última actualización: {{date}}*
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: story
|
|
3
|
+
id: {{id_json}}
|
|
4
|
+
epic: {{epic_id_json}}
|
|
5
|
+
title: {{title_json}}
|
|
6
|
+
status: planned
|
|
7
|
+
priority: p2
|
|
8
|
+
assignee: {{author_json}}
|
|
9
|
+
created: {{date}}
|
|
10
|
+
updated: {{date}}
|
|
11
|
+
external_refs: {}
|
|
12
|
+
tags: {{tags}}
|
|
13
|
+
code_refs: []
|
|
14
|
+
specs: []
|
|
15
|
+
started_at: null
|
|
16
|
+
closed_at: null
|
|
17
|
+
plan_updated_at: null
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# {{title}}
|
|
21
|
+
|
|
22
|
+
| Campo | Valor |
|
|
23
|
+
|---|---|
|
|
24
|
+
| **Épica** | [{{epic_id}}](../epic.md) |
|
|
25
|
+
| **Estado** | planned |
|
|
26
|
+
| **Prioridad** | p2 |
|
|
27
|
+
| **Responsable** | {{author}} |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Descripción
|
|
32
|
+
|
|
33
|
+
<!-- ¿Qué problema resuelve esta historia? ¿Quién es el usuario? -->
|
|
34
|
+
|
|
35
|
+
## Descomposición
|
|
36
|
+
|
|
37
|
+
<!-- Checklist granular de tareas concretas. Cada punto, lo bastante pequeño para cerrarlo en una sesión. -->
|
|
38
|
+
|
|
39
|
+
- [ ]
|
|
40
|
+
- [ ]
|
|
41
|
+
- [ ]
|
|
42
|
+
|
|
43
|
+
## Plan de implementación
|
|
44
|
+
|
|
45
|
+
<!-- Se escribe en la puerta de inicio (/projectstore:story plan), DESPUÉS de estudiar
|
|
46
|
+
el código. Si una spec cubre esta historia, es una ruta fina por sus contratos:
|
|
47
|
+
qué contratos, en qué orden, qué ficheros. -->
|
|
48
|
+
|
|
49
|
+
## Criterios de aceptación
|
|
50
|
+
|
|
51
|
+
<!-- ¿Cómo sabemos que está hecho? Cada criterio, verificable. Solo se marca con
|
|
52
|
+
evidencia al cerrar: - [x] <criterio> — evidencia: <test | comando | file:line> -->
|
|
53
|
+
|
|
54
|
+
- [ ]
|
|
55
|
+
- [ ]
|
|
56
|
+
|
|
57
|
+
## Resumen final
|
|
58
|
+
|
|
59
|
+
<!-- Se escribe en la puerta de cierre (/projectstore:story close): qué cambió, por qué,
|
|
60
|
+
qué pruebas se ejecutaron, riesgos y seguimientos. -->
|
|
61
|
+
|
|
62
|
+
## Notas técnicas
|
|
63
|
+
|
|
64
|
+
<!-- Pistas de implementación, restricciones, trampas conocidas. -->
|
|
65
|
+
|
|
66
|
+
## Dependencias
|
|
67
|
+
|
|
68
|
+
-
|
|
69
|
+
|
|
70
|
+
## Adjuntos
|
|
71
|
+
|
|
72
|
+
-
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
*Última actualización: {{date}}*
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: adr
|
|
3
|
+
id: {{id_json}}
|
|
4
|
+
title: {{title_json}}
|
|
5
|
+
status: proposed
|
|
6
|
+
date: {{date}}
|
|
7
|
+
authors: [{{author_json}}]
|
|
8
|
+
tags: {{tags}}
|
|
9
|
+
external_refs: {}
|
|
10
|
+
supersedes: null
|
|
11
|
+
superseded_by: null
|
|
12
|
+
review_status: pending
|
|
13
|
+
reviewed_at: null
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# {{title}}
|
|
17
|
+
|
|
18
|
+
| Champ | Valeur |
|
|
19
|
+
|---|---|
|
|
20
|
+
| **Statut** | proposed |
|
|
21
|
+
| **Date** | {{date}} |
|
|
22
|
+
| **Auteurs** | {{author}} |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Contexte
|
|
27
|
+
|
|
28
|
+
<!-- Quelles forces sont en jeu ? Pourquoi faut-il décider maintenant ? -->
|
|
29
|
+
|
|
30
|
+
## Décision
|
|
31
|
+
|
|
32
|
+
<!-- La décision elle-même, énoncée clairement et brièvement. -->
|
|
33
|
+
|
|
34
|
+
## Justification
|
|
35
|
+
|
|
36
|
+
<!-- Pourquoi cette décision plutôt que les alternatives. Raisons numérotées de préférence. -->
|
|
37
|
+
|
|
38
|
+
## Alternatives envisagées
|
|
39
|
+
|
|
40
|
+
### Alternative A : {{alternative_a_name}}
|
|
41
|
+
|
|
42
|
+
**Avantages** :
|
|
43
|
+
-
|
|
44
|
+
|
|
45
|
+
**Inconvénients** :
|
|
46
|
+
-
|
|
47
|
+
|
|
48
|
+
**Rejetée parce que** :
|
|
49
|
+
|
|
50
|
+
## Conséquences
|
|
51
|
+
|
|
52
|
+
**Positives** :
|
|
53
|
+
-
|
|
54
|
+
|
|
55
|
+
**Négatives / compromis** :
|
|
56
|
+
-
|
|
57
|
+
|
|
58
|
+
**Ce qui change dans le code / le processus** :
|
|
59
|
+
-
|
|
60
|
+
|
|
61
|
+
## Références
|
|
62
|
+
|
|
63
|
+
-
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
*Dernière mise à jour : {{date}}*
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: concept
|
|
3
|
+
slug: {{slug_json}}
|
|
4
|
+
title: {{title_json}}
|
|
5
|
+
status: draft
|
|
6
|
+
date: {{date}}
|
|
7
|
+
authors: [{{author_json}}]
|
|
8
|
+
tags: {{tags}}
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# {{title}}
|
|
12
|
+
|
|
13
|
+
## De quoi s'agit-il
|
|
14
|
+
|
|
15
|
+
<!-- Définition en un paragraphe. -->
|
|
16
|
+
|
|
17
|
+
## Pourquoi c'est important
|
|
18
|
+
|
|
19
|
+
<!-- Contexte, problème que ce concept adresse. -->
|
|
20
|
+
|
|
21
|
+
## Comment ça marche
|
|
22
|
+
|
|
23
|
+
<!-- Mécanisme, composants, interactions. -->
|
|
24
|
+
|
|
25
|
+
## Quand l'utiliser / ne pas l'utiliser
|
|
26
|
+
|
|
27
|
+
**Utiliser quand** :
|
|
28
|
+
-
|
|
29
|
+
|
|
30
|
+
**Ne pas utiliser quand** :
|
|
31
|
+
-
|
|
32
|
+
|
|
33
|
+
## Voir aussi
|
|
34
|
+
|
|
35
|
+
-
|
|
36
|
+
|
|
37
|
+
## Références
|
|
38
|
+
|
|
39
|
+
-
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
*Dernière mise à jour : {{date}}*
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: epic
|
|
3
|
+
id: {{id_json}}
|
|
4
|
+
title: {{title_json}}
|
|
5
|
+
status: planned
|
|
6
|
+
priority: p2
|
|
7
|
+
created: {{date}}
|
|
8
|
+
updated: {{date}}
|
|
9
|
+
external_refs: {}
|
|
10
|
+
tags: {{tags}}
|
|
11
|
+
code_refs: []
|
|
12
|
+
review_status: pending
|
|
13
|
+
reviewed_at: null
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# {{id}} : {{title}}
|
|
17
|
+
|
|
18
|
+
| Champ | Valeur |
|
|
19
|
+
|---|---|
|
|
20
|
+
| **Statut** | planned |
|
|
21
|
+
| **Priorité** | p2 |
|
|
22
|
+
| **Créé** | {{date}} |
|
|
23
|
+
| **Mis à jour** | {{date}} |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Objectif
|
|
28
|
+
|
|
29
|
+
<!-- À quoi ressemble le succès pour cet epic ? -->
|
|
30
|
+
|
|
31
|
+
## Contexte
|
|
32
|
+
|
|
33
|
+
<!-- Historique, motivation, pourquoi c'est important maintenant. -->
|
|
34
|
+
|
|
35
|
+
## Stories
|
|
36
|
+
|
|
37
|
+
| Story | Statut | Description |
|
|
38
|
+
|-------|--------|-------------|
|
|
39
|
+
| [story-001](./stories/story-001.md) | planned | |
|
|
40
|
+
|
|
41
|
+
## Résultats attendus
|
|
42
|
+
|
|
43
|
+
- [ ]
|
|
44
|
+
|
|
45
|
+
## Dépendances
|
|
46
|
+
|
|
47
|
+
-
|
|
48
|
+
|
|
49
|
+
## Questions ouvertes
|
|
50
|
+
|
|
51
|
+
- [ ]
|
|
52
|
+
|
|
53
|
+
## Voir aussi
|
|
54
|
+
|
|
55
|
+
-
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
*Dernière mise à jour : {{date}}*
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# {{folder_name}}
|
|
2
|
+
|
|
3
|
+
{{folder_description}}
|
|
4
|
+
|
|
5
|
+
## Index
|
|
6
|
+
|
|
7
|
+
<!-- projectstore tiendra cet index à jour à mesure que des entrées sont ajoutées via les commandes /projectstore:*. -->
|
|
8
|
+
|
|
9
|
+
| Fichier | Titre | Statut | Date |
|
|
10
|
+
|---------|-------|--------|------|
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
*Géré par le plugin projectstore. Les modifications manuelles hors du tableau d'index sont préservées.*
|