projectstore-codex 0.0.1 → 0.28.1
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 +163 -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 +255 -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 +36 -14
- package/plugin.json +53 -0
- 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,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
|
+
| Поле | Значение |
|
|
20
|
+
|---|---|
|
|
21
|
+
| **Статус** | draft |
|
|
22
|
+
| **Дата** | {{date}} |
|
|
23
|
+
| **Покрывает** | <!-- заполняется из stories: --> |
|
|
24
|
+
|
|
25
|
+
Критерии приёмки спеки — **дополнение** к критериям приёмки покрытых story,
|
|
26
|
+
не замена: story сдаётся, когда зелёные и те и другие (ADR-007).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Как решаем
|
|
31
|
+
|
|
32
|
+
<!-- Подход со ссылками на ADR, которые его решили: [[../adr/ADR-XXX-...|ADR-XXX]]. -->
|
|
33
|
+
|
|
34
|
+
## Контракты поведения
|
|
35
|
+
|
|
36
|
+
<!-- Нумерованные, проверяемые по одному. Каждый — наблюдаемый результат, не шаг реализации.
|
|
37
|
+
Для research-спайка: вопросы, на которые надо ответить + критерии выхода. -->
|
|
38
|
+
|
|
39
|
+
1.
|
|
40
|
+
2.
|
|
41
|
+
|
|
42
|
+
## Модули и файлы
|
|
43
|
+
|
|
44
|
+
<!-- Опционально (можно опустить для спайков): дерево файлов/модулей, которым управляет спека. -->
|
|
45
|
+
|
|
46
|
+
## Тестирование
|
|
47
|
+
|
|
48
|
+
<!-- Опционально: как проверяются контракты — юнит, интеграция, корпусные ворота. -->
|
|
49
|
+
|
|
50
|
+
## Приёмка
|
|
51
|
+
|
|
52
|
+
<!-- Чекбоксы. Пункты конкретных story помечаются "— stories: story-002";
|
|
53
|
+
пункты без атрибуции применяются ко ВСЕМ покрытым story. Frontmatter — только inline flow. -->
|
|
54
|
+
|
|
55
|
+
- [ ] — stories:
|
|
56
|
+
- [ ]
|
|
57
|
+
|
|
58
|
+
## Ссылки
|
|
59
|
+
|
|
60
|
+
-
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
*Обновлено: {{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
|
+
| Поле | Значение |
|
|
23
|
+
|---|---|
|
|
24
|
+
| **Эпик** | [{{epic_id}}](../epic.md) |
|
|
25
|
+
| **Статус** | planned |
|
|
26
|
+
| **Приоритет** | p2 |
|
|
27
|
+
| **Исполнитель** | {{author}} |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Описание
|
|
32
|
+
|
|
33
|
+
<!-- Какую проблему решает эта история? Кто пользователь? -->
|
|
34
|
+
|
|
35
|
+
## Декомпозиция
|
|
36
|
+
|
|
37
|
+
<!-- Гранулярный чеклист конкретных задач. Каждый пункт — достаточно мал, чтобы закрыть за одну сессию. -->
|
|
38
|
+
|
|
39
|
+
- [ ]
|
|
40
|
+
- [ ]
|
|
41
|
+
- [ ]
|
|
42
|
+
|
|
43
|
+
## План реализации
|
|
44
|
+
|
|
45
|
+
<!-- Пишется на гейте старта работы (/projectstore:story plan), ПОСЛЕ изучения
|
|
46
|
+
кодовой базы. Если story покрыта спекой — это тонкий маршрут по её
|
|
47
|
+
контрактам: какие контракты, в каком порядке, какие файлы. -->
|
|
48
|
+
|
|
49
|
+
## Критерии приёмки
|
|
50
|
+
|
|
51
|
+
<!-- Как понять, что готово? Каждый критерий проверяем. Отмечается только с
|
|
52
|
+
подтверждением при закрытии: - [x] <критерий> — подтверждение: <тест | команда | file:line> -->
|
|
53
|
+
|
|
54
|
+
- [ ]
|
|
55
|
+
- [ ]
|
|
56
|
+
|
|
57
|
+
## Итоговое резюме
|
|
58
|
+
|
|
59
|
+
<!-- Пишется на гейте закрытия (/projectstore:story close): что изменилось,
|
|
60
|
+
почему, какие тесты прогнаны, риски и follow-up. -->
|
|
61
|
+
|
|
62
|
+
## Технические заметки
|
|
63
|
+
|
|
64
|
+
<!-- Подсказки по реализации, ограничения, подводные камни. -->
|
|
65
|
+
|
|
66
|
+
## Зависимости
|
|
67
|
+
|
|
68
|
+
-
|
|
69
|
+
|
|
70
|
+
## Вложения
|
|
71
|
+
|
|
72
|
+
-
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
*Обновлено: {{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
|
+
| 字段 | 值 |
|
|
19
|
+
|---|---|
|
|
20
|
+
| **状态** | proposed |
|
|
21
|
+
| **日期** | {{date}} |
|
|
22
|
+
| **作者** | {{author}} |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 背景
|
|
27
|
+
|
|
28
|
+
<!-- 有哪些约束在起作用?为什么现在需要做这个决策? -->
|
|
29
|
+
|
|
30
|
+
## 决策
|
|
31
|
+
|
|
32
|
+
<!-- 决策本身,表述清晰简洁。 -->
|
|
33
|
+
|
|
34
|
+
## 理由
|
|
35
|
+
|
|
36
|
+
<!-- 为什么选它而不是备选方案。建议逐条编号。 -->
|
|
37
|
+
|
|
38
|
+
## 备选方案
|
|
39
|
+
|
|
40
|
+
### 备选方案 A:{{alternative_a_name}}
|
|
41
|
+
|
|
42
|
+
**优点**:
|
|
43
|
+
-
|
|
44
|
+
|
|
45
|
+
**缺点**:
|
|
46
|
+
-
|
|
47
|
+
|
|
48
|
+
**否决原因**:
|
|
49
|
+
|
|
50
|
+
## 影响
|
|
51
|
+
|
|
52
|
+
**正面**:
|
|
53
|
+
-
|
|
54
|
+
|
|
55
|
+
**负面 / 取舍**:
|
|
56
|
+
-
|
|
57
|
+
|
|
58
|
+
**代码 / 流程上的变化**:
|
|
59
|
+
-
|
|
60
|
+
|
|
61
|
+
## 参考
|
|
62
|
+
|
|
63
|
+
-
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
*最后更新:{{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
|
+
## 是什么
|
|
14
|
+
|
|
15
|
+
<!-- 一段话的定义。 -->
|
|
16
|
+
|
|
17
|
+
## 为什么重要
|
|
18
|
+
|
|
19
|
+
<!-- 背景,以及这个概念解决的问题。 -->
|
|
20
|
+
|
|
21
|
+
## 如何运作
|
|
22
|
+
|
|
23
|
+
<!-- 机制、组成部分、相互作用。 -->
|
|
24
|
+
|
|
25
|
+
## 何时适用 / 不适用
|
|
26
|
+
|
|
27
|
+
**适用于**:
|
|
28
|
+
-
|
|
29
|
+
|
|
30
|
+
**不适用于**:
|
|
31
|
+
-
|
|
32
|
+
|
|
33
|
+
## 相关
|
|
34
|
+
|
|
35
|
+
-
|
|
36
|
+
|
|
37
|
+
## 参考
|
|
38
|
+
|
|
39
|
+
-
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
*最后更新:{{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
|
+
| 字段 | 值 |
|
|
19
|
+
|---|---|
|
|
20
|
+
| **状态** | planned |
|
|
21
|
+
| **优先级** | p2 |
|
|
22
|
+
| **创建于** | {{date}} |
|
|
23
|
+
| **更新于** | {{date}} |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 目标
|
|
28
|
+
|
|
29
|
+
<!-- 这个 epic 的「成功」是什么样子? -->
|
|
30
|
+
|
|
31
|
+
## 背景
|
|
32
|
+
|
|
33
|
+
<!-- 来龙去脉、动机,以及为什么是现在。 -->
|
|
34
|
+
|
|
35
|
+
## Stories
|
|
36
|
+
|
|
37
|
+
| Story | 状态 | 描述 |
|
|
38
|
+
|-------|------|------|
|
|
39
|
+
| [story-001](./stories/story-001.md) | planned | |
|
|
40
|
+
|
|
41
|
+
## 预期成果
|
|
42
|
+
|
|
43
|
+
- [ ]
|
|
44
|
+
|
|
45
|
+
## 依赖
|
|
46
|
+
|
|
47
|
+
-
|
|
48
|
+
|
|
49
|
+
## 待定问题
|
|
50
|
+
|
|
51
|
+
- [ ]
|
|
52
|
+
|
|
53
|
+
## 相关
|
|
54
|
+
|
|
55
|
+
-
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
*最后更新:{{date}}*
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
kanban-plugin: board
|
|
4
|
+
projectstore: derived
|
|
5
|
+
generated_at: {{generated_at}}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 待办池
|
|
10
|
+
|
|
11
|
+
{{backlog_items}}
|
|
12
|
+
|
|
13
|
+
## 待开始
|
|
14
|
+
|
|
15
|
+
{{todo_items}}
|
|
16
|
+
|
|
17
|
+
## 进行中
|
|
18
|
+
|
|
19
|
+
{{in_progress_items}}
|
|
20
|
+
|
|
21
|
+
## 评审
|
|
22
|
+
|
|
23
|
+
{{review_items}}
|
|
24
|
+
|
|
25
|
+
## 已完成
|
|
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
|
+
## 参会人
|
|
13
|
+
|
|
14
|
+
-
|
|
15
|
+
|
|
16
|
+
## 议程
|
|
17
|
+
|
|
18
|
+
-
|
|
19
|
+
|
|
20
|
+
## 记录
|
|
21
|
+
|
|
22
|
+
###
|
|
23
|
+
|
|
24
|
+
## 决议
|
|
25
|
+
|
|
26
|
+
- [ ]
|
|
27
|
+
|
|
28
|
+
## 行动项
|
|
29
|
+
|
|
30
|
+
- [ ] **{{author}}**:
|
|
31
|
+
|
|
32
|
+
## 后续跟进
|
|
33
|
+
|
|
34
|
+
-
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
*记录人:{{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
|
+
## 问题
|
|
16
|
+
|
|
17
|
+
<!-- 我们想弄清楚什么? -->
|
|
18
|
+
|
|
19
|
+
## 结论速览(TL;DR)
|
|
20
|
+
|
|
21
|
+
<!-- 一段话的答案。正文写完后再填。 -->
|
|
22
|
+
|
|
23
|
+
## 方法
|
|
24
|
+
|
|
25
|
+
<!-- 如何调研:资料来源、实验、基准测试。 -->
|
|
26
|
+
|
|
27
|
+
## 发现
|
|
28
|
+
|
|
29
|
+
###
|
|
30
|
+
|
|
31
|
+
## 对比
|
|
32
|
+
|
|
33
|
+
| 方案 | 优点 | 缺点 |
|
|
34
|
+
|------|------|------|
|
|
35
|
+
| | | |
|
|
36
|
+
|
|
37
|
+
## 结论
|
|
38
|
+
|
|
39
|
+
<!-- 我们推荐什么,以及为什么。 -->
|
|
40
|
+
|
|
41
|
+
## 参考
|
|
42
|
+
|
|
43
|
+
-
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
*最后更新:{{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
|
+
## 用途
|
|
14
|
+
|
|
15
|
+
<!-- 何时、为何使用这份 runbook。 -->
|
|
16
|
+
|
|
17
|
+
## 前置条件
|
|
18
|
+
|
|
19
|
+
- [ ]
|
|
20
|
+
|
|
21
|
+
## 步骤
|
|
22
|
+
|
|
23
|
+
### 1.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 2.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 验证
|
|
36
|
+
|
|
37
|
+
- [ ]
|
|
38
|
+
|
|
39
|
+
## 回滚
|
|
40
|
+
|
|
41
|
+
<!-- 出问题时如何撤销。 -->
|
|
42
|
+
|
|
43
|
+
## 常见问题
|
|
44
|
+
|
|
45
|
+
###
|
|
46
|
+
|
|
47
|
+
## 参考
|
|
48
|
+
|
|
49
|
+
-
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
*最后更新:{{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
|
+
| 字段 | 值 |
|
|
20
|
+
|---|---|
|
|
21
|
+
| **状态** | draft |
|
|
22
|
+
| **日期** | {{date}} |
|
|
23
|
+
| **覆盖** | <!-- 由 stories 填充: --> |
|
|
24
|
+
|
|
25
|
+
spec 的验收是所覆盖 story 自身验收标准的**追加项**,不是替代:两边都为绿,
|
|
26
|
+
story 才算完成(ADR-007)。
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 解决方案
|
|
31
|
+
|
|
32
|
+
<!-- 具体做法,并引用做出该决策的 ADR:[[../adr/ADR-XXX-...|ADR-XXX]]。 -->
|
|
33
|
+
|
|
34
|
+
## 行为契约
|
|
35
|
+
|
|
36
|
+
<!-- 编号列出,逐条可测。每条描述可观察的结果,而不是实现步骤。
|
|
37
|
+
若是研究性 spike:需要回答的问题 + 退出条件。 -->
|
|
38
|
+
|
|
39
|
+
1.
|
|
40
|
+
2.
|
|
41
|
+
|
|
42
|
+
## 模块与文件
|
|
43
|
+
|
|
44
|
+
<!-- 可选(spike 可省略):本 spec 管辖的文件/模块树。 -->
|
|
45
|
+
|
|
46
|
+
## 测试
|
|
47
|
+
|
|
48
|
+
<!-- 可选:契约如何验证 —— 单元测试、集成测试、语料门禁。 -->
|
|
49
|
+
|
|
50
|
+
## 验收
|
|
51
|
+
|
|
52
|
+
<!-- 复选框。仅属于某个 story 的条目标注 "— stories: story-002";
|
|
53
|
+
未标注的条目适用于所有被覆盖的 story。frontmatter 只用 inline flow。 -->
|
|
54
|
+
|
|
55
|
+
- [ ] — stories:
|
|
56
|
+
- [ ]
|
|
57
|
+
|
|
58
|
+
## 参考
|
|
59
|
+
|
|
60
|
+
-
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
*最后更新:{{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
|
+
| 字段 | 值 |
|
|
23
|
+
|---|---|
|
|
24
|
+
| **Epic** | [{{epic_id}}](../epic.md) |
|
|
25
|
+
| **状态** | planned |
|
|
26
|
+
| **优先级** | p2 |
|
|
27
|
+
| **负责人** | {{author}} |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 描述
|
|
32
|
+
|
|
33
|
+
<!-- 这个 story 解决什么问题?用户是谁? -->
|
|
34
|
+
|
|
35
|
+
## 任务分解
|
|
36
|
+
|
|
37
|
+
<!-- 具体任务的细颗粒清单。每一条都小到能在一次会话内做完。 -->
|
|
38
|
+
|
|
39
|
+
- [ ]
|
|
40
|
+
- [ ]
|
|
41
|
+
- [ ]
|
|
42
|
+
|
|
43
|
+
## 实施计划
|
|
44
|
+
|
|
45
|
+
<!-- 在开工门禁处写(/projectstore:story plan),且要在读过代码之后。
|
|
46
|
+
若有 spec 覆盖本 story,这里只是穿过其契约的一条细路线:
|
|
47
|
+
用哪些契约、什么顺序、改哪些文件。 -->
|
|
48
|
+
|
|
49
|
+
## 验收标准
|
|
50
|
+
|
|
51
|
+
<!-- 怎样才算做完?每条都可验证。关闭时只有带证据才能打勾:
|
|
52
|
+
- [x] <标准> — 证据:<测试 | 命令 | file:line> -->
|
|
53
|
+
|
|
54
|
+
- [ ]
|
|
55
|
+
- [ ]
|
|
56
|
+
|
|
57
|
+
## 最终总结
|
|
58
|
+
|
|
59
|
+
<!-- 在完成门禁处写(/projectstore:story close):改了什么、为什么、
|
|
60
|
+
跑了哪些测试、风险与后续事项。 -->
|
|
61
|
+
|
|
62
|
+
## 技术说明
|
|
63
|
+
|
|
64
|
+
<!-- 实现提示、约束、坑。 -->
|
|
65
|
+
|
|
66
|
+
## 依赖
|
|
67
|
+
|
|
68
|
+
-
|
|
69
|
+
|
|
70
|
+
## 附件
|
|
71
|
+
|
|
72
|
+
-
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
*最后更新:{{date}}*
|