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,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
|
+
## Zweck
|
|
14
|
+
|
|
15
|
+
<!-- Wann und wozu dieses Runbook benutzt wird. -->
|
|
16
|
+
|
|
17
|
+
## Voraussetzungen
|
|
18
|
+
|
|
19
|
+
- [ ]
|
|
20
|
+
|
|
21
|
+
## Schritte
|
|
22
|
+
|
|
23
|
+
### 1.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 2.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Verifikation
|
|
36
|
+
|
|
37
|
+
- [ ]
|
|
38
|
+
|
|
39
|
+
## Rollback
|
|
40
|
+
|
|
41
|
+
<!-- Wie man zurückrollt, wenn etwas schiefgeht. -->
|
|
42
|
+
|
|
43
|
+
## Häufige Probleme
|
|
44
|
+
|
|
45
|
+
###
|
|
46
|
+
|
|
47
|
+
## Referenzen
|
|
48
|
+
|
|
49
|
+
-
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
*Zuletzt aktualisiert: {{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
|
+
| Feld | Wert |
|
|
20
|
+
|---|---|
|
|
21
|
+
| **Status** | draft |
|
|
22
|
+
| **Datum** | {{date}} |
|
|
23
|
+
| **Deckt ab** | <!-- wird aus stories gefüllt: --> |
|
|
24
|
+
|
|
25
|
+
Die Abnahme der Spec ist **additiv** zu den Abnahmekriterien der abgedeckten
|
|
26
|
+
Stories — eine Story ist erst fertig, wenn beides grün ist (ADR-007).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Lösungsweg
|
|
31
|
+
|
|
32
|
+
<!-- Der Ansatz, mit Verweis auf die entscheidenden ADRs: [[../adr/ADR-XXX-...|ADR-XXX]]. -->
|
|
33
|
+
|
|
34
|
+
## Verhaltensverträge
|
|
35
|
+
|
|
36
|
+
<!-- Nummeriert, einzeln testbar. Jeder beschreibt ein beobachtbares Ergebnis, keinen Implementierungsschritt.
|
|
37
|
+
Für einen Research-Spike: zu beantwortende Fragen + Ausstiegskriterien. -->
|
|
38
|
+
|
|
39
|
+
1.
|
|
40
|
+
2.
|
|
41
|
+
|
|
42
|
+
## Module und Dateien
|
|
43
|
+
|
|
44
|
+
<!-- Optional (bei Spikes weglassbar): der Datei-/Modulbaum, den diese Spec regiert. -->
|
|
45
|
+
|
|
46
|
+
## Tests
|
|
47
|
+
|
|
48
|
+
<!-- Optional: wie die Verträge verifiziert werden — Unit, Integration, Korpus-Gates. -->
|
|
49
|
+
|
|
50
|
+
## Abnahme
|
|
51
|
+
|
|
52
|
+
<!-- Checkboxen. Story-spezifische Punkte mit "— stories: story-002" auszeichnen;
|
|
53
|
+
Punkte ohne Zuordnung gelten für ALLE abgedeckten Stories. Im Frontmatter nur Inline-Flow. -->
|
|
54
|
+
|
|
55
|
+
- [ ] — stories:
|
|
56
|
+
- [ ]
|
|
57
|
+
|
|
58
|
+
## Referenzen
|
|
59
|
+
|
|
60
|
+
-
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
*Zuletzt aktualisiert: {{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
|
+
| Feld | Wert |
|
|
23
|
+
|---|---|
|
|
24
|
+
| **Epic** | [{{epic_id}}](../epic.md) |
|
|
25
|
+
| **Status** | planned |
|
|
26
|
+
| **Priorität** | p2 |
|
|
27
|
+
| **Zuständig** | {{author}} |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Beschreibung
|
|
32
|
+
|
|
33
|
+
<!-- Welches Problem löst diese Story? Wer ist der Nutzer? -->
|
|
34
|
+
|
|
35
|
+
## Zerlegung
|
|
36
|
+
|
|
37
|
+
<!-- Granulare Checkliste konkreter Aufgaben. Jeder Punkt klein genug für eine Sitzung. -->
|
|
38
|
+
|
|
39
|
+
- [ ]
|
|
40
|
+
- [ ]
|
|
41
|
+
- [ ]
|
|
42
|
+
|
|
43
|
+
## Umsetzungsplan
|
|
44
|
+
|
|
45
|
+
<!-- Wird am Start-Gate geschrieben (/projectstore:story plan), NACH dem Studium der
|
|
46
|
+
Codebasis. Deckt eine Spec diese Story ab, ist das eine dünne Route durch ihre
|
|
47
|
+
Verträge: welche Verträge, in welcher Reihenfolge, welche Dateien. -->
|
|
48
|
+
|
|
49
|
+
## Abnahmekriterien
|
|
50
|
+
|
|
51
|
+
<!-- Woran erkennen wir, dass es fertig ist? Jedes Kriterium testbar. Abgehakt nur mit
|
|
52
|
+
Nachweis beim Schließen: - [x] <Kriterium> — Nachweis: <Test | Kommando | file:line> -->
|
|
53
|
+
|
|
54
|
+
- [ ]
|
|
55
|
+
- [ ]
|
|
56
|
+
|
|
57
|
+
## Abschlussbericht
|
|
58
|
+
|
|
59
|
+
<!-- Wird am Fertig-Gate geschrieben (/projectstore:story close): was sich geändert hat,
|
|
60
|
+
warum, welche Tests liefen, Risiken und Follow-ups. -->
|
|
61
|
+
|
|
62
|
+
## Technische Hinweise
|
|
63
|
+
|
|
64
|
+
<!-- Implementierungshinweise, Randbedingungen, Fallstricke. -->
|
|
65
|
+
|
|
66
|
+
## Abhängigkeiten
|
|
67
|
+
|
|
68
|
+
-
|
|
69
|
+
|
|
70
|
+
## Anhänge
|
|
71
|
+
|
|
72
|
+
-
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
*Zuletzt aktualisiert: {{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
|
+
| Field | Value |
|
|
19
|
+
|---|---|
|
|
20
|
+
| **Status** | proposed |
|
|
21
|
+
| **Date** | {{date}} |
|
|
22
|
+
| **Authors** | {{author}} |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Context
|
|
27
|
+
|
|
28
|
+
<!-- What forces are at play? Why is a decision needed now? -->
|
|
29
|
+
|
|
30
|
+
## Decision
|
|
31
|
+
|
|
32
|
+
<!-- The decision itself, stated clearly and concisely. -->
|
|
33
|
+
|
|
34
|
+
## Rationale
|
|
35
|
+
|
|
36
|
+
<!-- Why this decision over alternatives. Numbered reasons preferred. -->
|
|
37
|
+
|
|
38
|
+
## Alternatives Considered
|
|
39
|
+
|
|
40
|
+
### Alternative A: {{alternative_a_name}}
|
|
41
|
+
|
|
42
|
+
**Pros**:
|
|
43
|
+
-
|
|
44
|
+
|
|
45
|
+
**Cons**:
|
|
46
|
+
-
|
|
47
|
+
|
|
48
|
+
**Rejected because**:
|
|
49
|
+
|
|
50
|
+
## Consequences
|
|
51
|
+
|
|
52
|
+
**Positive**:
|
|
53
|
+
-
|
|
54
|
+
|
|
55
|
+
**Negative / trade-offs**:
|
|
56
|
+
-
|
|
57
|
+
|
|
58
|
+
**What changes in code / process**:
|
|
59
|
+
-
|
|
60
|
+
|
|
61
|
+
## References
|
|
62
|
+
|
|
63
|
+
-
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
*Last updated: {{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
|
+
## What is it
|
|
14
|
+
|
|
15
|
+
<!-- One-paragraph definition. -->
|
|
16
|
+
|
|
17
|
+
## Why it matters
|
|
18
|
+
|
|
19
|
+
<!-- Context, problem this concept addresses. -->
|
|
20
|
+
|
|
21
|
+
## How it works
|
|
22
|
+
|
|
23
|
+
<!-- Mechanism, components, interactions. -->
|
|
24
|
+
|
|
25
|
+
## When to use / not use
|
|
26
|
+
|
|
27
|
+
**Use when**:
|
|
28
|
+
-
|
|
29
|
+
|
|
30
|
+
**Don't use when**:
|
|
31
|
+
-
|
|
32
|
+
|
|
33
|
+
## Related
|
|
34
|
+
|
|
35
|
+
-
|
|
36
|
+
|
|
37
|
+
## References
|
|
38
|
+
|
|
39
|
+
-
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
*Last updated: {{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
|
+
| Field | Value |
|
|
19
|
+
|---|---|
|
|
20
|
+
| **Status** | planned |
|
|
21
|
+
| **Priority** | p2 |
|
|
22
|
+
| **Created** | {{date}} |
|
|
23
|
+
| **Updated** | {{date}} |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Goal
|
|
28
|
+
|
|
29
|
+
<!-- What does success look like for this epic? -->
|
|
30
|
+
|
|
31
|
+
## Context
|
|
32
|
+
|
|
33
|
+
<!-- Background, motivation, why this matters now. -->
|
|
34
|
+
|
|
35
|
+
## Stories
|
|
36
|
+
|
|
37
|
+
| Story | Status | Description |
|
|
38
|
+
|-------|--------|-------------|
|
|
39
|
+
| [story-001](./stories/story-001.md) | planned | |
|
|
40
|
+
|
|
41
|
+
## Expected Results
|
|
42
|
+
|
|
43
|
+
- [ ]
|
|
44
|
+
|
|
45
|
+
## Dependencies
|
|
46
|
+
|
|
47
|
+
-
|
|
48
|
+
|
|
49
|
+
## Open Questions
|
|
50
|
+
|
|
51
|
+
- [ ]
|
|
52
|
+
|
|
53
|
+
## Related
|
|
54
|
+
|
|
55
|
+
-
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
*Last updated: {{date}}*
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# {{folder_name}}
|
|
2
|
+
|
|
3
|
+
{{folder_description}}
|
|
4
|
+
|
|
5
|
+
## Index
|
|
6
|
+
|
|
7
|
+
<!-- projectstore will keep this index up-to-date when new entries are added via /projectstore:* commands. -->
|
|
8
|
+
|
|
9
|
+
| File | Title | Status | Date |
|
|
10
|
+
|------|-------|--------|------|
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
*Managed by projectstore plugin. Manual edits preserved outside the Index table.*
|
|
@@ -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
|
+
## ToDo
|
|
14
|
+
|
|
15
|
+
{{todo_items}}
|
|
16
|
+
|
|
17
|
+
## In Progress
|
|
18
|
+
|
|
19
|
+
{{in_progress_items}}
|
|
20
|
+
|
|
21
|
+
## Review
|
|
22
|
+
|
|
23
|
+
{{review_items}}
|
|
24
|
+
|
|
25
|
+
## Done
|
|
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
|
+
## Attendees
|
|
13
|
+
|
|
14
|
+
-
|
|
15
|
+
|
|
16
|
+
## Agenda
|
|
17
|
+
|
|
18
|
+
-
|
|
19
|
+
|
|
20
|
+
## Notes
|
|
21
|
+
|
|
22
|
+
###
|
|
23
|
+
|
|
24
|
+
## Decisions
|
|
25
|
+
|
|
26
|
+
- [ ]
|
|
27
|
+
|
|
28
|
+
## Action Items
|
|
29
|
+
|
|
30
|
+
- [ ] **{{author}}**:
|
|
31
|
+
|
|
32
|
+
## Follow-ups
|
|
33
|
+
|
|
34
|
+
-
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
*Notes by: {{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
|
+
## Question
|
|
16
|
+
|
|
17
|
+
<!-- What are we trying to learn? -->
|
|
18
|
+
|
|
19
|
+
## TL;DR
|
|
20
|
+
|
|
21
|
+
<!-- One-paragraph answer. Fill in after the body. -->
|
|
22
|
+
|
|
23
|
+
## Method
|
|
24
|
+
|
|
25
|
+
<!-- How we investigated: sources, experiments, benchmarks. -->
|
|
26
|
+
|
|
27
|
+
## Findings
|
|
28
|
+
|
|
29
|
+
###
|
|
30
|
+
|
|
31
|
+
## Comparison
|
|
32
|
+
|
|
33
|
+
| Option | Pros | Cons |
|
|
34
|
+
|--------|------|------|
|
|
35
|
+
| | | |
|
|
36
|
+
|
|
37
|
+
## Conclusion
|
|
38
|
+
|
|
39
|
+
<!-- What we recommend and why. -->
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
-
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
*Last updated: {{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
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
<!-- When and why to use this runbook. -->
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
- [ ]
|
|
20
|
+
|
|
21
|
+
## Steps
|
|
22
|
+
|
|
23
|
+
### 1.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 2.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Verification
|
|
36
|
+
|
|
37
|
+
- [ ]
|
|
38
|
+
|
|
39
|
+
## Rollback
|
|
40
|
+
|
|
41
|
+
<!-- How to undo if something goes wrong. -->
|
|
42
|
+
|
|
43
|
+
## Common Issues
|
|
44
|
+
|
|
45
|
+
###
|
|
46
|
+
|
|
47
|
+
## References
|
|
48
|
+
|
|
49
|
+
-
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
*Last updated: {{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
|
+
| Field | Value |
|
|
20
|
+
|---|---|
|
|
21
|
+
| **Status** | draft |
|
|
22
|
+
| **Date** | {{date}} |
|
|
23
|
+
| **Covers** | <!-- filled from stories: --> |
|
|
24
|
+
|
|
25
|
+
Spec acceptance is **additive** to the covered stories' own acceptance criteria
|
|
26
|
+
— a story is done only when both are green (ADR-007).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## How we solve
|
|
31
|
+
|
|
32
|
+
<!-- The approach, with references to the ADR(s) that decided it: [[../adr/ADR-XXX-...|ADR-XXX]]. -->
|
|
33
|
+
|
|
34
|
+
## Behavioral contracts
|
|
35
|
+
|
|
36
|
+
<!-- Numbered, individually testable. Each states an observable outcome, not an implementation step.
|
|
37
|
+
For a research spike: questions to answer + exit criteria. -->
|
|
38
|
+
|
|
39
|
+
1.
|
|
40
|
+
2.
|
|
41
|
+
|
|
42
|
+
## Modules & files on disk
|
|
43
|
+
|
|
44
|
+
<!-- Optional (may be omitted for spikes): the file/module tree this spec governs. -->
|
|
45
|
+
|
|
46
|
+
## Testing
|
|
47
|
+
|
|
48
|
+
<!-- Optional: how the contracts are verified — unit, integration, corpus gates. -->
|
|
49
|
+
|
|
50
|
+
## Acceptance
|
|
51
|
+
|
|
52
|
+
<!-- Checkboxes. Attribute story-specific items with "— stories: story-002";
|
|
53
|
+
unattributed items apply to ALL covered stories. Inline flow only in frontmatter. -->
|
|
54
|
+
|
|
55
|
+
- [ ] — stories:
|
|
56
|
+
- [ ]
|
|
57
|
+
|
|
58
|
+
## References
|
|
59
|
+
|
|
60
|
+
-
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
*Last updated: {{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
|
+
| Field | Value |
|
|
23
|
+
|---|---|
|
|
24
|
+
| **Epic** | [{{epic_id}}](../epic.md) |
|
|
25
|
+
| **Status** | planned |
|
|
26
|
+
| **Priority** | p2 |
|
|
27
|
+
| **Assignee** | {{author}} |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Description
|
|
32
|
+
|
|
33
|
+
<!-- What problem does this story solve? Who is the user? -->
|
|
34
|
+
|
|
35
|
+
## Decomposition
|
|
36
|
+
|
|
37
|
+
<!-- Granular checklist of concrete tasks. Each item should be small enough to complete in a session. -->
|
|
38
|
+
|
|
39
|
+
- [ ]
|
|
40
|
+
- [ ]
|
|
41
|
+
- [ ]
|
|
42
|
+
|
|
43
|
+
## Implementation Plan
|
|
44
|
+
|
|
45
|
+
<!-- Written at the work-start gate (/projectstore:story plan), AFTER studying the
|
|
46
|
+
codebase. When a spec covers this story, this is a thin route through the
|
|
47
|
+
spec's contracts: which contracts, in what order, which files. -->
|
|
48
|
+
|
|
49
|
+
## Acceptance Criteria
|
|
50
|
+
|
|
51
|
+
<!-- How do we know we're done? Each criterion testable. Checked only with
|
|
52
|
+
evidence at close: - [x] <criterion> — evidence: <test | command | file:line> -->
|
|
53
|
+
|
|
54
|
+
- [ ]
|
|
55
|
+
- [ ]
|
|
56
|
+
|
|
57
|
+
## Final Summary
|
|
58
|
+
|
|
59
|
+
<!-- Written at the done gate (/projectstore:story close): what changed, why,
|
|
60
|
+
tests executed, risks and follow-ups. -->
|
|
61
|
+
|
|
62
|
+
## Technical Notes
|
|
63
|
+
|
|
64
|
+
<!-- Implementation hints, constraints, gotchas. -->
|
|
65
|
+
|
|
66
|
+
## Dependencies
|
|
67
|
+
|
|
68
|
+
-
|
|
69
|
+
|
|
70
|
+
## Attachments
|
|
71
|
+
|
|
72
|
+
-
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
*Last updated: {{date}}*
|