@x0rium/devkit-cli 0.5.0 → 0.6.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/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/scaffold.d.ts +1 -0
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +42 -4
- package/dist/scaffold.js.map +1 -1
- package/package.json +3 -2
- package/skills/arch-kit/README.md +195 -0
- package/skills/arch-kit/SKILL.md +128 -0
- package/skills/arch-kit/references/adr.md +25 -0
- package/skills/arch-kit/references/impact.md +13 -0
- package/skills/arch-kit/references/invariants.md +9 -0
- package/skills/arch-kit/references/investigation.md +37 -0
- package/skills/arch-kit/references/rfc.md +36 -0
- package/skills/devkit-init/SKILL.md +99 -0
- package/skills/devkit-init/references/brownfield.md +147 -0
- package/skills/devkit-init/references/greenfield.md +44 -0
- package/skills/devkit-init/references/upgrade.md +103 -0
- package/skills/product-kit/README.md +135 -0
- package/skills/product-kit/SKILL.md +101 -0
- package/skills/product-kit/references/roadmap.md +16 -0
- package/skills/product-kit/references/users.md +14 -0
- package/skills/product-kit/references/ux_invariants.md +8 -0
- package/skills/qa-kit/README.md +188 -0
- package/skills/qa-kit/SKILL.md +113 -0
- package/skills/qa-kit/references/assumption_checks.md +10 -0
- package/skills/qa-kit/references/coverage_map.md +19 -0
- package/skills/qa-kit/references/test_contracts.md +10 -0
- package/skills/research-kit/README.md +139 -0
- package/skills/research-kit/SKILL.md +84 -0
- package/skills/research-kit/references/assumptions.md +9 -0
- package/skills/research-kit/references/feasibility.md +15 -0
- package/skills/research-kit/references/market.md +13 -0
- package/skills/research-kit/references/unknowns.md +9 -0
- package/skills/spec-kit/README.md +139 -0
- package/skills/spec-kit/SKILL.md +108 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# SpecKit
|
|
2
|
+
|
|
3
|
+
> Уровень 4. "Строим."
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Отношение к github/spec-kit
|
|
8
|
+
|
|
9
|
+
DevKit использует оригинальный [github/spec-kit](https://github.com/github/spec-kit) без изменений. SpecKit в контексте DevKit — это уровень 4 который получает на вход верифицированные артефакты из ArchKit.
|
|
10
|
+
|
|
11
|
+
Разница с использованием spec-kit напрямую:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Без DevKit:
|
|
15
|
+
разработчик пишет constitution.md вручную
|
|
16
|
+
AI додумывает архитектуру сам
|
|
17
|
+
хитрит потому что нет доказанного основания
|
|
18
|
+
|
|
19
|
+
С DevKit:
|
|
20
|
+
constitution.md генерируется из invariants.md + decisions/
|
|
21
|
+
AI работает в рамках верифицированной архитектуры
|
|
22
|
+
отклонение от инвариантов — блокер, не молчаливое изменение
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Входные артефакты
|
|
28
|
+
|
|
29
|
+
SpecKit получает из ArchKit:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
.devkit/arch/constitution.md → .specify/constitution.md
|
|
33
|
+
.devkit/arch/invariants.md → контекст для всех спек
|
|
34
|
+
.devkit/arch/impact.md → используется при эскалации
|
|
35
|
+
.devkit/product/ux_invariants.md → часть constitution
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Стандартный флоу (github/spec-kit)
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
/constitution ← не писать вручную, брать из ArchKit
|
|
44
|
+
/specify ← описание фичи
|
|
45
|
+
/clarify ← уточнение до планирования
|
|
46
|
+
/plan ← технический план
|
|
47
|
+
/tasks ← разбивка на задачи
|
|
48
|
+
/analyze ← проверка согласованности
|
|
49
|
+
/implement ← реализация
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Детектор событий
|
|
55
|
+
|
|
56
|
+
В процессе работы в SpecKit AI отслеживает триггеры и эскалирует:
|
|
57
|
+
|
|
58
|
+
### Триггер RFC
|
|
59
|
+
Разработчик упоминает новое требование которое меняет инварианты.
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Паттерны:
|
|
63
|
+
"нам ещё нужно..."
|
|
64
|
+
"а что если добавить..."
|
|
65
|
+
"заказчик попросил..."
|
|
66
|
+
|
|
67
|
+
Реакция AI:
|
|
68
|
+
"Это затрагивает инвариант [I_N] из invariants.md.
|
|
69
|
+
Предлагаю RFC перед продолжением. /arch rfc?"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Триггер Investigation
|
|
73
|
+
Технический блокер в процессе реализации.
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Паттерны:
|
|
77
|
+
"либа не поддерживает..."
|
|
78
|
+
"бенчмарк показал..."
|
|
79
|
+
"нашёл баг в..."
|
|
80
|
+
"это работает не так как ожидали..."
|
|
81
|
+
|
|
82
|
+
Реакция AI:
|
|
83
|
+
"Это нарушает допущение из [ADR-N].
|
|
84
|
+
Нужен Investigation. /arch investigate?"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Триггер Product Blocker
|
|
88
|
+
UX проблема обнаруженная при реализации.
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
Паттерны:
|
|
92
|
+
"это неудобно использовать..."
|
|
93
|
+
"слишком много параметров..."
|
|
94
|
+
"пользователь не поймёт..."
|
|
95
|
+
|
|
96
|
+
Реакция AI:
|
|
97
|
+
"Это нарушение UX инварианта [U_N].
|
|
98
|
+
Нужен ProductKit investigation. /product investigate?"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Структура спеки
|
|
104
|
+
|
|
105
|
+
Каждая спека в DevKit контексте содержит дополнительный раздел:
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
# Spec NNN: [название]
|
|
109
|
+
|
|
110
|
+
## Invariants
|
|
111
|
+
TECHNICAL: [какие инварианты из invariants.md затрагивает]
|
|
112
|
+
UX: [какие UX инварианты из ux_invariants.md затрагивает]
|
|
113
|
+
|
|
114
|
+
## Standard SpecKit content
|
|
115
|
+
...
|
|
116
|
+
|
|
117
|
+
## Deviation Guard
|
|
118
|
+
Если реализация требует отклонения от инварианта — СТОП.
|
|
119
|
+
Не реализовывать. Создать RFC.
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Команды
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
/speckit init ← инициализация из ArchKit артефактов
|
|
128
|
+
/speckit sync ← обновить constitution из ArchKit после RFC
|
|
129
|
+
/speckit check-invariants ← проверить что спеки не нарушают инварианты
|
|
130
|
+
|
|
131
|
+
# Стандартные команды github/spec-kit
|
|
132
|
+
/constitution
|
|
133
|
+
/specify
|
|
134
|
+
/clarify
|
|
135
|
+
/plan
|
|
136
|
+
/tasks
|
|
137
|
+
/analyze
|
|
138
|
+
/implement
|
|
139
|
+
```
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-kit
|
|
3
|
+
description: DevKit Level 4. Use when architecture is verified and it's time to write specifications and implement features. Integrates with github/spec-kit workflow. Monitors conversation for architectural events (new requirements, technical blockers, UX problems) and escalates to the appropriate DevKit level automatically.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: devkit
|
|
7
|
+
version: "1.0"
|
|
8
|
+
layer: "4-of-5"
|
|
9
|
+
prev: arch-kit
|
|
10
|
+
next: qa-kit
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# SpecKit — Level 4: "Build it."
|
|
14
|
+
|
|
15
|
+
You are operating in SpecKit phase. Architecture is verified. You have a constitution.md. Now you build — using the github/spec-kit workflow as the implementation engine.
|
|
16
|
+
|
|
17
|
+
## Your Role
|
|
18
|
+
|
|
19
|
+
- Follow github/spec-kit methodology for specification and implementation
|
|
20
|
+
- Monitor every developer message for escalation triggers
|
|
21
|
+
- STOP and escalate before proceeding when triggers are detected
|
|
22
|
+
- Never silently modify architecture within a spec
|
|
23
|
+
|
|
24
|
+
## Constitution
|
|
25
|
+
|
|
26
|
+
Before any spec work, confirm constitution.md exists at `.specify/constitution.md`.
|
|
27
|
+
If it doesn't exist, stop and run: `/arch-kit generate-constitution`
|
|
28
|
+
|
|
29
|
+
The constitution comes from ArchKit — do not edit it manually. It contains the verified invariants that all specs must respect.
|
|
30
|
+
|
|
31
|
+
## Standard Workflow (github/spec-kit)
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
/constitution — already generated by ArchKit, review only
|
|
35
|
+
/specify — describe the feature
|
|
36
|
+
/clarify — resolve ambiguities before planning
|
|
37
|
+
/plan — technical plan respecting invariants
|
|
38
|
+
/tasks — break into reviewable units
|
|
39
|
+
/analyze — check cross-spec consistency
|
|
40
|
+
/implement — generate code
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Invariant Guard
|
|
44
|
+
|
|
45
|
+
Every spec must declare which invariants it touches:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
## Invariant Coverage
|
|
49
|
+
TECHNICAL: [I1, I3] from .devkit/arch/invariants.md
|
|
50
|
+
UX: [U2] from .devkit/product/ux_invariants.md
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
If implementation requires deviating from an invariant → STOP. Do not implement. Open RFC.
|
|
54
|
+
|
|
55
|
+
## Event Detection — CRITICAL
|
|
56
|
+
|
|
57
|
+
Monitor every developer message. Before continuing spec work, check for triggers.
|
|
58
|
+
|
|
59
|
+
### RFC Trigger — New Requirement
|
|
60
|
+
Patterns: "we also need", "add support for", "client wants", "what about", "can we also"
|
|
61
|
+
|
|
62
|
+
Action:
|
|
63
|
+
> "This sounds like a new requirement. Let me check if it touches our invariants.
|
|
64
|
+
> [read .devkit/arch/invariants.md]
|
|
65
|
+
> This affects invariant [I_N]. I need to open an RFC before continuing.
|
|
66
|
+
> Estimated impact: [N specs affected]. Proceed with RFC? /arch-kit rfc"
|
|
67
|
+
|
|
68
|
+
Do NOT continue spec work until RFC is resolved.
|
|
69
|
+
|
|
70
|
+
### Investigation Trigger — Technical Blocker
|
|
71
|
+
Patterns: "bug in library", "this doesn't support", "benchmark shows", "unexpected behavior", "doesn't work as expected", "performance issue"
|
|
72
|
+
|
|
73
|
+
Action:
|
|
74
|
+
> "This breaks an architectural assumption. Let me identify which one.
|
|
75
|
+
> [read .devkit/arch/decisions/ADR-*.md]
|
|
76
|
+
> This breaks the assumption in [ADR-N]. Opening Investigation.
|
|
77
|
+
> /arch-kit investigate"
|
|
78
|
+
|
|
79
|
+
Do NOT work around the blocker silently.
|
|
80
|
+
|
|
81
|
+
### Product Blocker Trigger — UX Problem
|
|
82
|
+
Patterns: "this is hard to use", "too many parameters", "confusing", "users won't get this", "awkward interface"
|
|
83
|
+
|
|
84
|
+
Action:
|
|
85
|
+
> "This looks like a UX invariant issue. Let me check.
|
|
86
|
+
> [read .devkit/product/ux_invariants.md]
|
|
87
|
+
> This conflicts with [U_N]. Escalating to ProductKit investigation."
|
|
88
|
+
|
|
89
|
+
Do NOT continue with the current design.
|
|
90
|
+
|
|
91
|
+
### No Trigger — Normal Work
|
|
92
|
+
When none of the above apply: proceed with standard spec-kit workflow.
|
|
93
|
+
|
|
94
|
+
## Spec Numbering
|
|
95
|
+
|
|
96
|
+
Specs are numbered sequentially: spec_001, spec_002, etc.
|
|
97
|
+
When specs are revised after an RFC, they keep their number and get revision suffix: spec_003_r1.
|
|
98
|
+
|
|
99
|
+
## Handoff to QAKit
|
|
100
|
+
|
|
101
|
+
After implementation of a feature or milestone:
|
|
102
|
+
```
|
|
103
|
+
IMPLEMENTATION COMPLETE
|
|
104
|
+
SPECS: [list]
|
|
105
|
+
INVARIANTS COVERED: [list]
|
|
106
|
+
OPEN ITEMS: none / [list with owners]
|
|
107
|
+
READY FOR: QAKit
|
|
108
|
+
```
|