@zrg-sh/studio 0.1.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/LICENSE +21 -0
- package/ONBOARDING.html +270 -0
- package/README.md +82 -0
- package/bin/zrg-studio.mjs +67 -0
- package/package.json +29 -0
- package/src/commands/doctor.mjs +60 -0
- package/src/commands/init.mjs +44 -0
- package/src/lib/copy-template.mjs +42 -0
- package/src/lib/merge-claude-settings.mjs +54 -0
- package/template/.claude/agents/studio-analyst.md +109 -0
- package/template/.claude/agents/studio-designer.md +172 -0
- package/template/.claude/agents/studio-domain-framer.md +109 -0
- package/template/.claude/agents/studio-domain-merger.md +264 -0
- package/template/.claude/agents/studio-pm.md +169 -0
- package/template/.claude/agents/studio-reviewer.md +156 -0
- package/template/.claude/agents/studio-scenario-writer.md +152 -0
- package/template/.claude/commands/studio-analyst.md +45 -0
- package/template/.claude/commands/studio-designer.md +34 -0
- package/template/.claude/commands/studio-domain-framer.md +30 -0
- package/template/.claude/commands/studio-onboard.md +98 -0
- package/template/.claude/commands/studio-pm.md +39 -0
- package/template/.claude/commands/studio-scenario-writer.md +44 -0
- package/template/product-specs/CLAUDE.md +53 -0
- package/template/product-specs/agents/studio-analyst.md +109 -0
- package/template/product-specs/agents/studio-codebase-mapper.md +217 -0
- package/template/product-specs/agents/studio-conflict-resolver.md +169 -0
- package/template/product-specs/agents/studio-designer.md +172 -0
- package/template/product-specs/agents/studio-domain-extractor.md +365 -0
- package/template/product-specs/agents/studio-domain-framer.md +109 -0
- package/template/product-specs/agents/studio-domain-interviewer.md +246 -0
- package/template/product-specs/agents/studio-domain-merger.md +264 -0
- package/template/product-specs/agents/studio-god.md +779 -0
- package/template/product-specs/agents/studio-meta-god.md +335 -0
- package/template/product-specs/agents/studio-pm.md +169 -0
- package/template/product-specs/agents/studio-reviewer.md +156 -0
- package/template/product-specs/agents/studio-scenario-writer.md +152 -0
- package/template/product-specs/agents/studio-verifier.md +222 -0
- package/template/product-specs/docs/_meta/capability-map.example.md +103 -0
- package/template/product-specs/docs/_meta/doc-schema.md +134 -0
- package/template/product-specs/docs/_meta/domain-map.example.md +106 -0
- package/template/product-specs/docs/_meta/glossary.example.md +72 -0
- package/template/product-specs/docs/_meta/onboarding.example.md +142 -0
- package/template/product-specs/docs/_meta/product-vision.example.md +136 -0
- package/template/product-specs/hooks/studio-conflict-detect.sh +59 -0
- package/template/product-specs/hooks/studio-context-monitor.js +37 -0
- package/template/product-specs/hooks/studio-domain-guard.sh +40 -0
- package/template/product-specs/hooks/studio-prompt-guard.js +36 -0
- package/template/product-specs/hooks/studio-session-state.sh +55 -0
- package/template/product-specs/hooks/studio-stage-gate.sh +180 -0
- package/template/product-specs/references/checkpoints.md +27 -0
- package/template/product-specs/references/ddd-conventions.md +38 -0
- package/template/product-specs/references/gates.md +50 -0
- package/template/product-specs/references/model-profiles.md +28 -0
- package/template/product-specs/references/obsidian-conventions.md +51 -0
- package/template/product-specs/references/stage-pipeline.md +65 -0
- package/template/product-specs/rules/change-management.md +159 -0
- package/template/product-specs/rules/docs-conventions.md +81 -0
- package/template/product-specs/rules/domain-conventions.md +69 -0
- package/template/product-specs/rules/id-numbering.md +51 -0
- package/template/product-specs/rules/obsidian-conventions.md +51 -0
- package/template/product-specs/templates/change/01-intent.md +40 -0
- package/template/product-specs/templates/change/02-scenarios.md +66 -0
- package/template/product-specs/templates/change/03-analysis.md +64 -0
- package/template/product-specs/templates/change/04-domain.md +47 -0
- package/template/product-specs/templates/change/05-ux.md +46 -0
- package/template/product-specs/templates/change/metadata.yaml +26 -0
- package/template/product-specs/templates/config.json +19 -0
- package/template/product-specs/templates/domain/README.md +31 -0
- package/template/product-specs/templates/domain/aggregates.md +37 -0
- package/template/product-specs/templates/domain/api-contracts.md +29 -0
- package/template/product-specs/templates/domain/business-rules.md +30 -0
- package/template/product-specs/templates/domain/changelog.md +25 -0
- package/template/product-specs/templates/domain/data-model.md +34 -0
- package/template/product-specs/templates/domain/events.md +24 -0
- package/template/product-specs/templates/domain/integrations.md +27 -0
- package/template/product-specs/templates/domain/invariants.md +14 -0
- package/template/product-specs/templates/domain/links.yaml +20 -0
- package/template/product-specs/templates/domain/operational-sla.md +32 -0
- package/template/product-specs/templates/domain/ownership.md +13 -0
- package/template/product-specs/templates/domain/scenarios.md +65 -0
- package/template/product-specs/templates/domain/surfaces.md +51 -0
- package/template/product-specs/templates/domain/ubiquitous-language.md +12 -0
- package/template/product-specs/templates/meta/capability-map.md +55 -0
- package/template/product-specs/templates/meta/doc-schema.md +134 -0
- package/template/product-specs/templates/meta/domain-map.md +67 -0
- package/template/product-specs/templates/meta/glossary.md +30 -0
- package/template/product-specs/templates/meta/onboarding.md +108 -0
- package/template/product-specs/templates/state.md +19 -0
- package/template/product-specs/workflows/conflict-resolution.md +10 -0
- package/template/product-specs/workflows/domain-update.md +15 -0
- package/template/product-specs/workflows/map-codebase.md +17 -0
- package/template/product-specs/workflows/onboard-project.md +575 -0
- package/template/product-specs/workflows/pipeline-full.md +258 -0
- package/template/product-specs/workflows/pipeline-resume.md +21 -0
- package/template/product-specs/workflows/verify-change.md +12 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: meta
|
|
3
|
+
status: active
|
|
4
|
+
tags:
|
|
5
|
+
- meta
|
|
6
|
+
- onboarding
|
|
7
|
+
created: 2026-04-08
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Onboarding guide
|
|
11
|
+
|
|
12
|
+
## System overview
|
|
13
|
+
|
|
14
|
+
**Documentation-first development** --- подход, при котором любое изменение в системе начинается с документа, а не с кода. Документация --- это не артефакт после разработки, а конвейер, через который проходит каждая фича. Нет документа --- нет задачи, физически.
|
|
15
|
+
|
|
16
|
+
**Domain-Driven Design (DDD) для документации** означает, что бизнес-логика описывается на языке предметной области, а не на языке реализации. Каждый домен имеет свой ubiquitous language, агрегаты, события и инварианты. Это позволяет разработчикам и бизнесу говорить на одном языке.
|
|
17
|
+
|
|
18
|
+
**Change packages (PRDCT-XXXX)** --- иммутабельные наборы из 5 бизнес-документов, описывающих одно конкретное изменение. Каждый change package проходит через конвейер из 5 стадий. После завершения executor пишет код, а merger обновляет domain docs.
|
|
19
|
+
|
|
20
|
+
> [!danger] Ключевой принцип
|
|
21
|
+
> **Нет документа --- нет задачи.** PR без ссылки на PRDCT-* не мержится.
|
|
22
|
+
|
|
23
|
+
## Process pipeline
|
|
24
|
+
|
|
25
|
+
```mermaid
|
|
26
|
+
flowchart LR
|
|
27
|
+
S01["01 Intent\n/pm"] --> S02["02 Scenarios\n/scenarios"]
|
|
28
|
+
S02 --> S03["03 Analysis\n/analyst"]
|
|
29
|
+
S03 --> S04["04 Domain\n/domain-framer"]
|
|
30
|
+
S04 --> S05["05 UX\n/designer"]
|
|
31
|
+
S05 --> S06["Executor\n(code)"]
|
|
32
|
+
S06 --> S07["Merger\n(domain docs)"]
|
|
33
|
+
|
|
34
|
+
style S01 fill:#e8f5e9,stroke:#2e7d32
|
|
35
|
+
style S02 fill:#fff3e0,stroke:#e65100
|
|
36
|
+
style S03 fill:#e3f2fd,stroke:#1565c0
|
|
37
|
+
style S04 fill:#e8eaf6,stroke:#283593
|
|
38
|
+
style S05 fill:#fce4ec,stroke:#c62828
|
|
39
|
+
style S06 fill:#f3e5f5,stroke:#6a1b9a
|
|
40
|
+
style S07 fill:#e0f2f1,stroke:#00695c
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
> [!info] Каждая стадия --- это документ
|
|
44
|
+
> На каждой стадии AI-агент создаёт конкретный файл внутри change package. Переход к следующей стадии возможен только после завершения предыдущей.
|
|
45
|
+
|
|
46
|
+
## Repository structure
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
docs/
|
|
50
|
+
├── domains/ -> Бизнес-домены (DDD): что делает бизнес
|
|
51
|
+
├── changes/ -> Change packages: как система меняется
|
|
52
|
+
├── adrs/ -> Architecture Decision Records: почему так решили
|
|
53
|
+
├── contexts/ -> Платформенное знание: как устроена платформа
|
|
54
|
+
studio/
|
|
55
|
+
├── agents/ -> AI-роли (PM, Analyst, Designer, Executor, Merger)
|
|
56
|
+
├── rules/ -> Правила для AI-агентов
|
|
57
|
+
├── hooks/ -> Валидация при изменении документов
|
|
58
|
+
└── workflows/ -> Pipeline-ы
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
> [!info] Разделение знаний
|
|
62
|
+
> - **domains/** содержат ТОЛЬКО бизнес-знание --- никакого UI, никаких имён сервисов
|
|
63
|
+
> - **contexts/** содержат платформенное знание --- стек, архитектуру, инструменты
|
|
64
|
+
> - **changes/** содержат бизнес-описание изменений --- иммутабельны после мержа
|
|
65
|
+
|
|
66
|
+
## Your first change package
|
|
67
|
+
|
|
68
|
+
1. **Запусти** `/pm добавить [описание фичи]` --- ответь на вопросы PM-агента
|
|
69
|
+
2. **Получи PRDCT-XXXX** --- агент создаст папку и 01-intent.md
|
|
70
|
+
3. **Запусти** `/scenarios PRDCT-XXXX` --- Gherkin scenarios (02-scenarios.md)
|
|
71
|
+
4. **Запусти** `/analyst PRDCT-XXXX` --- system analysis (03-analysis.md)
|
|
72
|
+
5. **Запусти** `/domain-framer PRDCT-XXXX` --- domain modeling (04-domain.md)
|
|
73
|
+
6. **Запусти** `/designer PRDCT-XXXX` --- UX mockups (05-ux.md + mockups/)
|
|
74
|
+
7. **Запусти** `/review PRDCT-XXXX` --- проверка целостности
|
|
75
|
+
8. Status -> done. Executor пишет код, merger обновляет domain docs.
|
|
76
|
+
|
|
77
|
+
> [!tip] Быстрый запуск
|
|
78
|
+
> Можно запустить весь pipeline одной командой: `/feature [описание]`
|
|
79
|
+
|
|
80
|
+
## Key rules
|
|
81
|
+
|
|
82
|
+
> [!danger] Rule 1: Domain docs --- только бизнес-знание
|
|
83
|
+
> Domain docs содержат ТОЛЬКО бизнес-знание + surfaces. Никаких деталей реализации. API contracts и data model обновляются из кода, не из change docs.
|
|
84
|
+
|
|
85
|
+
> [!danger] Rule 2: Change packages иммутабельны
|
|
86
|
+
> Change packages иммутабельны после мержа --- никогда не удаляются и не редактируются.
|
|
87
|
+
|
|
88
|
+
> [!danger] Rule 3: Техника не в change package
|
|
89
|
+
> Change package содержит ТОЛЬКО бизнес-документы (intent, scenarios, analysis, domain, UX). Технические решения принимает executor при написании кода.
|
|
90
|
+
|
|
91
|
+
> [!danger] Rule 4: PR привязан к PRDCT
|
|
92
|
+
> PR без ссылки на PRDCT-* не мержится. Нет документа --- нет задачи.
|
|
93
|
+
|
|
94
|
+
## What lives where
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
Question -> Location
|
|
98
|
+
----------------------------------------------------------
|
|
99
|
+
Что делает этот домен? -> domains/[name]/README.md
|
|
100
|
+
Какие бизнес-правила? -> domains/[name]/business-rules.md
|
|
101
|
+
Что не может быть нарушено? -> domains/[name]/invariants.md
|
|
102
|
+
Какие события генерирует домен? -> domains/[name]/events.md
|
|
103
|
+
Какие экраны есть в домене? -> domains/[name]/surfaces.md
|
|
104
|
+
Какие сценарии поведения? -> domains/[name]/scenarios.md
|
|
105
|
+
Как устроен фронтенд? -> contexts/frontend/architecture.md
|
|
106
|
+
Почему принято это архитектурное решение? -> adrs/ADR-XXX.md
|
|
107
|
+
Что изменилось в этой фиче? -> changes/PRDCT-XXXX/
|
|
108
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Studio State
|
|
2
|
+
|
|
3
|
+
## Status: idle
|
|
4
|
+
## Current PRDCT: none
|
|
5
|
+
## Current Phase: none
|
|
6
|
+
## Current Actor: none
|
|
7
|
+
|
|
8
|
+
## Performance Metrics
|
|
9
|
+
- Changes completed: 0
|
|
10
|
+
- Domains documented: 0
|
|
11
|
+
|
|
12
|
+
## Accumulated Context
|
|
13
|
+
- Decisions: none yet
|
|
14
|
+
- Pending TODOs: none
|
|
15
|
+
- Blockers: none
|
|
16
|
+
|
|
17
|
+
## Session Continuity
|
|
18
|
+
- Last stopped: never
|
|
19
|
+
- Resume point: none
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Workflow: Conflict Resolution
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
Automatic when studio-stage-gate or studio-conflict-detect hook finds domain overlap.
|
|
5
|
+
|
|
6
|
+
## Process
|
|
7
|
+
1. Identify conflicting PRDCTs and shared domains
|
|
8
|
+
2. Spawn studio-conflict-resolver agent
|
|
9
|
+
3. Present recommendation to user
|
|
10
|
+
4. Update metadata.yaml of both PRDCTs based on decision
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Workflow: Domain Update
|
|
2
|
+
|
|
3
|
+
Обновление domain docs после merge change package.
|
|
4
|
+
|
|
5
|
+
## Trigger
|
|
6
|
+
After PRDCT status → done and PR merged.
|
|
7
|
+
|
|
8
|
+
## Process
|
|
9
|
+
1. Read 03-domain-impact.md — what should change
|
|
10
|
+
2. For each affected domain:
|
|
11
|
+
- Read all 8 domain files
|
|
12
|
+
- Apply changes described in domain-impact
|
|
13
|
+
- Add wikilinks back to PRDCT
|
|
14
|
+
3. Verify: ubiquitous-language no conflicts, invariants consistent
|
|
15
|
+
4. Commit domain doc updates
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Workflow: Map Codebase
|
|
2
|
+
|
|
3
|
+
Параллельный анализ кодовой базы по зонам.
|
|
4
|
+
|
|
5
|
+
## Input
|
|
6
|
+
Путь к проекту.
|
|
7
|
+
|
|
8
|
+
## Process
|
|
9
|
+
1. Bootstrap: mkdir product-specs/docs/_onboard/zones product-specs/docs/_onboard/synthesis
|
|
10
|
+
2. Codebase map: stats, stack, directory structure → 00-codebase-map.md
|
|
11
|
+
3. Zone definition: split into zones → 01-zones.md
|
|
12
|
+
4. Parallel zone analysis: spawn studio-codebase-mapper agent per zone (up to 3 parallel)
|
|
13
|
+
5. Verify all zone files created and non-empty
|
|
14
|
+
6. Track progress in synthesis/progress.md
|
|
15
|
+
|
|
16
|
+
## Resume
|
|
17
|
+
If product-specs/docs/_onboard/synthesis/progress.md exists → read it, skip completed zones.
|