@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.
Files changed (95) hide show
  1. package/LICENSE +21 -0
  2. package/ONBOARDING.html +270 -0
  3. package/README.md +82 -0
  4. package/bin/zrg-studio.mjs +67 -0
  5. package/package.json +29 -0
  6. package/src/commands/doctor.mjs +60 -0
  7. package/src/commands/init.mjs +44 -0
  8. package/src/lib/copy-template.mjs +42 -0
  9. package/src/lib/merge-claude-settings.mjs +54 -0
  10. package/template/.claude/agents/studio-analyst.md +109 -0
  11. package/template/.claude/agents/studio-designer.md +172 -0
  12. package/template/.claude/agents/studio-domain-framer.md +109 -0
  13. package/template/.claude/agents/studio-domain-merger.md +264 -0
  14. package/template/.claude/agents/studio-pm.md +169 -0
  15. package/template/.claude/agents/studio-reviewer.md +156 -0
  16. package/template/.claude/agents/studio-scenario-writer.md +152 -0
  17. package/template/.claude/commands/studio-analyst.md +45 -0
  18. package/template/.claude/commands/studio-designer.md +34 -0
  19. package/template/.claude/commands/studio-domain-framer.md +30 -0
  20. package/template/.claude/commands/studio-onboard.md +98 -0
  21. package/template/.claude/commands/studio-pm.md +39 -0
  22. package/template/.claude/commands/studio-scenario-writer.md +44 -0
  23. package/template/product-specs/CLAUDE.md +53 -0
  24. package/template/product-specs/agents/studio-analyst.md +109 -0
  25. package/template/product-specs/agents/studio-codebase-mapper.md +217 -0
  26. package/template/product-specs/agents/studio-conflict-resolver.md +169 -0
  27. package/template/product-specs/agents/studio-designer.md +172 -0
  28. package/template/product-specs/agents/studio-domain-extractor.md +365 -0
  29. package/template/product-specs/agents/studio-domain-framer.md +109 -0
  30. package/template/product-specs/agents/studio-domain-interviewer.md +246 -0
  31. package/template/product-specs/agents/studio-domain-merger.md +264 -0
  32. package/template/product-specs/agents/studio-god.md +779 -0
  33. package/template/product-specs/agents/studio-meta-god.md +335 -0
  34. package/template/product-specs/agents/studio-pm.md +169 -0
  35. package/template/product-specs/agents/studio-reviewer.md +156 -0
  36. package/template/product-specs/agents/studio-scenario-writer.md +152 -0
  37. package/template/product-specs/agents/studio-verifier.md +222 -0
  38. package/template/product-specs/docs/_meta/capability-map.example.md +103 -0
  39. package/template/product-specs/docs/_meta/doc-schema.md +134 -0
  40. package/template/product-specs/docs/_meta/domain-map.example.md +106 -0
  41. package/template/product-specs/docs/_meta/glossary.example.md +72 -0
  42. package/template/product-specs/docs/_meta/onboarding.example.md +142 -0
  43. package/template/product-specs/docs/_meta/product-vision.example.md +136 -0
  44. package/template/product-specs/hooks/studio-conflict-detect.sh +59 -0
  45. package/template/product-specs/hooks/studio-context-monitor.js +37 -0
  46. package/template/product-specs/hooks/studio-domain-guard.sh +40 -0
  47. package/template/product-specs/hooks/studio-prompt-guard.js +36 -0
  48. package/template/product-specs/hooks/studio-session-state.sh +55 -0
  49. package/template/product-specs/hooks/studio-stage-gate.sh +180 -0
  50. package/template/product-specs/references/checkpoints.md +27 -0
  51. package/template/product-specs/references/ddd-conventions.md +38 -0
  52. package/template/product-specs/references/gates.md +50 -0
  53. package/template/product-specs/references/model-profiles.md +28 -0
  54. package/template/product-specs/references/obsidian-conventions.md +51 -0
  55. package/template/product-specs/references/stage-pipeline.md +65 -0
  56. package/template/product-specs/rules/change-management.md +159 -0
  57. package/template/product-specs/rules/docs-conventions.md +81 -0
  58. package/template/product-specs/rules/domain-conventions.md +69 -0
  59. package/template/product-specs/rules/id-numbering.md +51 -0
  60. package/template/product-specs/rules/obsidian-conventions.md +51 -0
  61. package/template/product-specs/templates/change/01-intent.md +40 -0
  62. package/template/product-specs/templates/change/02-scenarios.md +66 -0
  63. package/template/product-specs/templates/change/03-analysis.md +64 -0
  64. package/template/product-specs/templates/change/04-domain.md +47 -0
  65. package/template/product-specs/templates/change/05-ux.md +46 -0
  66. package/template/product-specs/templates/change/metadata.yaml +26 -0
  67. package/template/product-specs/templates/config.json +19 -0
  68. package/template/product-specs/templates/domain/README.md +31 -0
  69. package/template/product-specs/templates/domain/aggregates.md +37 -0
  70. package/template/product-specs/templates/domain/api-contracts.md +29 -0
  71. package/template/product-specs/templates/domain/business-rules.md +30 -0
  72. package/template/product-specs/templates/domain/changelog.md +25 -0
  73. package/template/product-specs/templates/domain/data-model.md +34 -0
  74. package/template/product-specs/templates/domain/events.md +24 -0
  75. package/template/product-specs/templates/domain/integrations.md +27 -0
  76. package/template/product-specs/templates/domain/invariants.md +14 -0
  77. package/template/product-specs/templates/domain/links.yaml +20 -0
  78. package/template/product-specs/templates/domain/operational-sla.md +32 -0
  79. package/template/product-specs/templates/domain/ownership.md +13 -0
  80. package/template/product-specs/templates/domain/scenarios.md +65 -0
  81. package/template/product-specs/templates/domain/surfaces.md +51 -0
  82. package/template/product-specs/templates/domain/ubiquitous-language.md +12 -0
  83. package/template/product-specs/templates/meta/capability-map.md +55 -0
  84. package/template/product-specs/templates/meta/doc-schema.md +134 -0
  85. package/template/product-specs/templates/meta/domain-map.md +67 -0
  86. package/template/product-specs/templates/meta/glossary.md +30 -0
  87. package/template/product-specs/templates/meta/onboarding.md +108 -0
  88. package/template/product-specs/templates/state.md +19 -0
  89. package/template/product-specs/workflows/conflict-resolution.md +10 -0
  90. package/template/product-specs/workflows/domain-update.md +15 -0
  91. package/template/product-specs/workflows/map-codebase.md +17 -0
  92. package/template/product-specs/workflows/onboard-project.md +575 -0
  93. package/template/product-specs/workflows/pipeline-full.md +258 -0
  94. package/template/product-specs/workflows/pipeline-resume.md +21 -0
  95. 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.