@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,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: business-rules
|
|
3
|
+
domain: DOMAIN_NAME
|
|
4
|
+
tags:
|
|
5
|
+
- domain/DOMAIN_NAME
|
|
6
|
+
- business-rule
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Business rules · [Domain name]
|
|
10
|
+
|
|
11
|
+
## Rules
|
|
12
|
+
|
|
13
|
+
### [Rule name]
|
|
14
|
+
|
|
15
|
+
> [!info] Rule: [Rule name]
|
|
16
|
+
> [Описание правила]
|
|
17
|
+
|
|
18
|
+
- **Rationale:**
|
|
19
|
+
- **Source:** (ADR / decision / legal / product)
|
|
20
|
+
|
|
21
|
+
> [!bug] Edge case
|
|
22
|
+
> [Описание edge case]
|
|
23
|
+
|
|
24
|
+
## Policies
|
|
25
|
+
-
|
|
26
|
+
|
|
27
|
+
## Corner cases
|
|
28
|
+
|
|
29
|
+
> [!warning] [Corner case name]
|
|
30
|
+
> [Описание corner case и как с ним справляться]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: changelog
|
|
3
|
+
domain: _template
|
|
4
|
+
status: active
|
|
5
|
+
tags:
|
|
6
|
+
- domain/_template
|
|
7
|
+
- changelog
|
|
8
|
+
created: YYYY-MM-DD
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Changelog
|
|
12
|
+
|
|
13
|
+
История изменений домена. Обновляется автоматически agent-merger'ом после закрытия каждого PRDCT/DMNPRDCT.
|
|
14
|
+
|
|
15
|
+
## Changes
|
|
16
|
+
|
|
17
|
+
<!-- Автогенерируемый раздел. Формат:
|
|
18
|
+
### DMNPRDCT-XXXX · [title] · [date]
|
|
19
|
+
- **Business rules:** [что добавлено/изменено]
|
|
20
|
+
- **Events:** [новые/изменённые события]
|
|
21
|
+
- **Aggregates:** [изменения структуры]
|
|
22
|
+
- **Invariants:** [новые/изменённые инварианты]
|
|
23
|
+
- **API:** [новые/изменённые endpoints]
|
|
24
|
+
- **DB:** [миграции]
|
|
25
|
+
-->
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: data-model
|
|
3
|
+
domain: _template
|
|
4
|
+
status: draft
|
|
5
|
+
tags:
|
|
6
|
+
- domain/_template
|
|
7
|
+
- database
|
|
8
|
+
created: YYYY-MM-DD
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Data model
|
|
12
|
+
|
|
13
|
+
## Tables
|
|
14
|
+
| Table | Description | Owner | Rows estimate |
|
|
15
|
+
|-------|-------------|-------|---------------|
|
|
16
|
+
|
|
17
|
+
## Schema
|
|
18
|
+
|
|
19
|
+
### [Table name]
|
|
20
|
+
| Column | Type | Nullable | Default | Description |
|
|
21
|
+
|--------|------|----------|---------|-------------|
|
|
22
|
+
|
|
23
|
+
## Indexes
|
|
24
|
+
| Table | Index | Columns | Type | Purpose |
|
|
25
|
+
|-------|-------|---------|------|---------|
|
|
26
|
+
|
|
27
|
+
## Migrations history
|
|
28
|
+
| Migration | Date | PRDCT | Description |
|
|
29
|
+
|-----------|------|-----|-------------|
|
|
30
|
+
|
|
31
|
+
## ER diagram
|
|
32
|
+
```mermaid
|
|
33
|
+
erDiagram
|
|
34
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: events
|
|
3
|
+
domain: DOMAIN_NAME
|
|
4
|
+
tags:
|
|
5
|
+
- domain/DOMAIN_NAME
|
|
6
|
+
- event
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Domain events · [Domain name]
|
|
10
|
+
|
|
11
|
+
| Event | Producer | Consumers | Payload | Guarantees | Idempotency |
|
|
12
|
+
|---|---|---|---|---|---|
|
|
13
|
+
|
|
14
|
+
## Event flow
|
|
15
|
+
|
|
16
|
+
```mermaid
|
|
17
|
+
sequenceDiagram
|
|
18
|
+
participant P as Producer
|
|
19
|
+
participant C1 as Consumer 1
|
|
20
|
+
participant C2 as Consumer 2
|
|
21
|
+
|
|
22
|
+
P->>C1: EventName
|
|
23
|
+
P->>C2: EventName
|
|
24
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: integrations
|
|
3
|
+
domain: DOMAIN_NAME
|
|
4
|
+
tags:
|
|
5
|
+
- domain/DOMAIN_NAME
|
|
6
|
+
- integration
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Integrations · [Domain name]
|
|
10
|
+
|
|
11
|
+
## Upstream dependencies
|
|
12
|
+
<!-- Системы, от которых зависит этот домен -->
|
|
13
|
+
|
|
14
|
+
## Downstream consumers
|
|
15
|
+
<!-- Системы, которые зависят от этого домена -->
|
|
16
|
+
|
|
17
|
+
## Integration diagram
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
graph LR
|
|
21
|
+
UP1[Upstream 1] --> THIS[This Domain]
|
|
22
|
+
THIS --> DOWN1[Downstream 1]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Integration contracts
|
|
26
|
+
| System | Direction | Protocol | Contract | SLA |
|
|
27
|
+
|---|---|---|---|---|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: invariants
|
|
3
|
+
domain: DOMAIN_NAME
|
|
4
|
+
tags:
|
|
5
|
+
- domain/DOMAIN_NAME
|
|
6
|
+
- invariant
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Invariants · [Domain name]
|
|
10
|
+
|
|
11
|
+
> [!danger] Invariants
|
|
12
|
+
> Не могут быть нарушены ни при каких обстоятельствах. Каждое изменение домена ОБЯЗАНО пройти проверку по этому списку.
|
|
13
|
+
|
|
14
|
+
- [ ] [Описание инварианта]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
domain: ""
|
|
2
|
+
owner: ""
|
|
3
|
+
|
|
4
|
+
upstream_domains: []
|
|
5
|
+
downstream_domains: []
|
|
6
|
+
|
|
7
|
+
aggregates: []
|
|
8
|
+
|
|
9
|
+
domain_events:
|
|
10
|
+
produced: []
|
|
11
|
+
consumed: []
|
|
12
|
+
|
|
13
|
+
code_refs:
|
|
14
|
+
backend: []
|
|
15
|
+
frontend: []
|
|
16
|
+
|
|
17
|
+
related_adrs: []
|
|
18
|
+
related_changes: []
|
|
19
|
+
|
|
20
|
+
tags: []
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: operational-sla
|
|
3
|
+
domain: _template
|
|
4
|
+
status: draft
|
|
5
|
+
tags:
|
|
6
|
+
- domain/_template
|
|
7
|
+
- sla
|
|
8
|
+
- operations
|
|
9
|
+
created: YYYY-MM-DD
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Operational SLA
|
|
13
|
+
|
|
14
|
+
## Performance targets
|
|
15
|
+
| Metric | Target | Current | Measurement |
|
|
16
|
+
|--------|--------|---------|-------------|
|
|
17
|
+
|
|
18
|
+
## Timeouts
|
|
19
|
+
| Operation | Timeout | Retry policy | Fallback |
|
|
20
|
+
|-----------|---------|-------------|----------|
|
|
21
|
+
|
|
22
|
+
## Rate limits
|
|
23
|
+
| Endpoint/Operation | Limit | Per | Burst |
|
|
24
|
+
|-------------------|-------|-----|-------|
|
|
25
|
+
|
|
26
|
+
## Monitoring
|
|
27
|
+
| Alert | Condition | Severity | Runbook |
|
|
28
|
+
|-------|-----------|----------|---------|
|
|
29
|
+
|
|
30
|
+
## Dependencies SLA
|
|
31
|
+
| Dependency | Expected uptime | Impact if down |
|
|
32
|
+
|-----------|----------------|----------------|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: scenarios
|
|
3
|
+
domain: _template
|
|
4
|
+
status: draft
|
|
5
|
+
tags:
|
|
6
|
+
- domain/_template
|
|
7
|
+
- scenarios
|
|
8
|
+
created: YYYY-MM-DD
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Scenarios
|
|
12
|
+
|
|
13
|
+
Каноничные сценарии поведения системы в этом домене. Источник истины для тестов и реализации. Обновляется через distillation после каждого change.
|
|
14
|
+
|
|
15
|
+
## Core scenarios
|
|
16
|
+
|
|
17
|
+
### [Scenario name]
|
|
18
|
+
```gherkin
|
|
19
|
+
Given [precondition]
|
|
20
|
+
When [action]
|
|
21
|
+
Then [result]
|
|
22
|
+
And [side effect]
|
|
23
|
+
```
|
|
24
|
+
Source: [[PRDCT-XXXX-name]]
|
|
25
|
+
|
|
26
|
+
## Edge cases
|
|
27
|
+
|
|
28
|
+
### [Scenario name]
|
|
29
|
+
```gherkin
|
|
30
|
+
Given [unusual precondition]
|
|
31
|
+
When [action]
|
|
32
|
+
Then [handling]
|
|
33
|
+
```
|
|
34
|
+
Source: [[PRDCT-XXXX-name]]
|
|
35
|
+
|
|
36
|
+
## Error scenarios
|
|
37
|
+
|
|
38
|
+
### [Scenario name]
|
|
39
|
+
```gherkin
|
|
40
|
+
Given [precondition]
|
|
41
|
+
When [action that fails]
|
|
42
|
+
Then [error handling]
|
|
43
|
+
And [user sees: message]
|
|
44
|
+
```
|
|
45
|
+
Source: [[PRDCT-XXXX-name]]
|
|
46
|
+
|
|
47
|
+
## Permission scenarios
|
|
48
|
+
|
|
49
|
+
### [Role] can/cannot [action]
|
|
50
|
+
```gherkin
|
|
51
|
+
Given user has role [role]
|
|
52
|
+
When user attempts [action]
|
|
53
|
+
Then [result]
|
|
54
|
+
```
|
|
55
|
+
Source: [[PRDCT-XXXX-name]]
|
|
56
|
+
|
|
57
|
+
## Concurrent scenarios
|
|
58
|
+
|
|
59
|
+
### [Scenario name]
|
|
60
|
+
```gherkin
|
|
61
|
+
Given [two actors]
|
|
62
|
+
When [simultaneous action]
|
|
63
|
+
Then [resolution]
|
|
64
|
+
```
|
|
65
|
+
Source: [[PRDCT-XXXX-name]]
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: surfaces
|
|
3
|
+
domain: _template
|
|
4
|
+
status: draft
|
|
5
|
+
tags:
|
|
6
|
+
- domain/_template
|
|
7
|
+
- surfaces
|
|
8
|
+
created: YYYY-MM-DD
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Surfaces · [Domain name]
|
|
12
|
+
|
|
13
|
+
## Screens
|
|
14
|
+
|
|
15
|
+
### [Screen name]
|
|
16
|
+
- **Purpose:**
|
|
17
|
+
- **Entry points:** (how user gets here)
|
|
18
|
+
- **Scenario refs:** [[scenario name]]
|
|
19
|
+
|
|
20
|
+
#### States
|
|
21
|
+
| State | Description | Trigger |
|
|
22
|
+
|-------|------------|---------|
|
|
23
|
+
| loading | | |
|
|
24
|
+
| success | | |
|
|
25
|
+
| error | | |
|
|
26
|
+
| empty | | |
|
|
27
|
+
|
|
28
|
+
## Flows
|
|
29
|
+
|
|
30
|
+
### [Flow name]
|
|
31
|
+
- **Actor:**
|
|
32
|
+
- **Scenario ref:** [[scenario name]]
|
|
33
|
+
|
|
34
|
+
```mermaid
|
|
35
|
+
stateDiagram-v2
|
|
36
|
+
[*] --> Screen1
|
|
37
|
+
Screen1 --> Screen2: action
|
|
38
|
+
Screen2 --> [*]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
1. [step] → [screen]
|
|
42
|
+
2. [step] → [screen]
|
|
43
|
+
|
|
44
|
+
## Permissions per surface
|
|
45
|
+
|
|
46
|
+
| Surface | Role | Visible | Editable | Notes |
|
|
47
|
+
|---------|------|---------|----------|-------|
|
|
48
|
+
|
|
49
|
+
## Error messages
|
|
50
|
+
| Context | User message | Recovery action |
|
|
51
|
+
|---------|-------------|----------------|
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: meta
|
|
3
|
+
tags:
|
|
4
|
+
- meta
|
|
5
|
+
- map
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Capability Map
|
|
9
|
+
|
|
10
|
+
## Platform capabilities
|
|
11
|
+
|
|
12
|
+
```mermaid
|
|
13
|
+
mindmap
|
|
14
|
+
root((AI Web Studio))
|
|
15
|
+
Training
|
|
16
|
+
Session lifecycle
|
|
17
|
+
Turn management
|
|
18
|
+
AI facilitation
|
|
19
|
+
Content
|
|
20
|
+
Scenario catalog
|
|
21
|
+
Prompt templates
|
|
22
|
+
Role definitions
|
|
23
|
+
Assessment
|
|
24
|
+
Session scoring
|
|
25
|
+
Feedback generation
|
|
26
|
+
Progress tracking
|
|
27
|
+
Platform
|
|
28
|
+
Authentication
|
|
29
|
+
LLM Gateway
|
|
30
|
+
Analytics
|
|
31
|
+
Billing
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Capability → Domain mapping
|
|
35
|
+
|
|
36
|
+
| Capability | Domain | Status |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| Session lifecycle | training-session | active |
|
|
39
|
+
| Turn management | training-session | active |
|
|
40
|
+
| AI facilitation | training-session | active |
|
|
41
|
+
| Scenario catalog | scenario-catalog | planned |
|
|
42
|
+
| Session scoring | assessment | planned |
|
|
43
|
+
| Feedback generation | assessment | planned |
|
|
44
|
+
| Progress tracking | learner-progress | planned |
|
|
45
|
+
| Authentication | auth (infrastructure) | planned |
|
|
46
|
+
| LLM Gateway | llm-gateway (infrastructure) | planned |
|
|
47
|
+
|
|
48
|
+
## Domains by status
|
|
49
|
+
|
|
50
|
+
```dataview
|
|
51
|
+
TABLE status, owner
|
|
52
|
+
FROM "domains"
|
|
53
|
+
WHERE type = "domain"
|
|
54
|
+
GROUP BY status
|
|
55
|
+
```
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Documentation Schema
|
|
2
|
+
|
|
3
|
+
## Philosophy
|
|
4
|
+
|
|
5
|
+
Документация -- конвейер, не архив.
|
|
6
|
+
Каждый переход между ролями -- это документ.
|
|
7
|
+
Нет документа -- нет задачи, физически.
|
|
8
|
+
|
|
9
|
+
В системе две оси:
|
|
10
|
+
- **Knowledge base** -- стабильное описание системы как она есть
|
|
11
|
+
- **Change packages** -- описание системы как она меняется
|
|
12
|
+
|
|
13
|
+
## Folder separation rules
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
/domains -> ЧТО делает бизнес (язык, правила, события, инварианты, сценарии, surfaces)
|
|
17
|
+
БЕЗ реализации. БЕЗ имён сервисов.
|
|
18
|
+
|
|
19
|
+
/contexts -> КАК устроена платформа по дисциплинам
|
|
20
|
+
Стабильное архитектурное знание по каждой дисциплине.
|
|
21
|
+
|
|
22
|
+
/changes -> ПОЧЕМУ и КАК бизнес решил что-то изменить
|
|
23
|
+
Только бизнес-документы. Иммутабельно после мержа.
|
|
24
|
+
|
|
25
|
+
/adrs -> ПОЧЕМУ принято кросс-доменное архитектурное решение
|
|
26
|
+
Иммутабельно после принятия.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Hard rules
|
|
30
|
+
|
|
31
|
+
1. PR без ссылки на PRDCT-* не мержится
|
|
32
|
+
2. Domain docs обновляются merger'ом после кода, не напрямую
|
|
33
|
+
3. Нет документа -- нет задачи
|
|
34
|
+
4. Change package содержит ТОЛЬКО бизнес-документы (5 файлов)
|
|
35
|
+
5. Техническая архитектура -- ответственность executor'а, не change package
|
|
36
|
+
6. API contracts и data model в domain docs обновляются из кода, не из change docs
|
|
37
|
+
|
|
38
|
+
## Stage pipeline
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Stage 1 · Intent -> 01-intent.md (PM)
|
|
42
|
+
Stage 2 · Scenarios -> 02-scenarios.md (Scenario Writer)
|
|
43
|
+
Stage 3 · System Analysis -> 03-analysis.md (Analyst)
|
|
44
|
+
Stage 4 · Domain framing -> 04-domain.md (Domain Framer)
|
|
45
|
+
Stage 5 · UX -> 05-ux.md + mockups/ (Designer)
|
|
46
|
+
· Status -> done
|
|
47
|
+
Post · Code -> backend + frontend (Executor)
|
|
48
|
+
Post · Domain docs update -> domain files updated (Merger)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## AI Studio · Roles & Skills
|
|
52
|
+
|
|
53
|
+
AI-роли реализованы как Claude Code Skills. Каждая роль -- отдельный скилл с уникальной экспертизой и тоном.
|
|
54
|
+
|
|
55
|
+
### Roles
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
┌─────────────────┐ ┌────────────────┐ ┌──────────────────┐ ┌────────────────┐ ┌────────────────┐
|
|
59
|
+
│ /pm │────>│ /scenarios │────>│ /analyst │────>│ /domain-framer │────>│ /designer │
|
|
60
|
+
│ Product Manager │ │ Scenario │ │ System Analyst │ │ Domain Framer │ │ UI/UX │
|
|
61
|
+
│ Intent │ │ Writer │ │ Analysis │ │ Domain Model │ │ Designer │
|
|
62
|
+
│ 01-intent.md │ │ 02-scenarios │ │ 03-analysis.md │ │ 04-domain.md │ │ 05-ux.md │
|
|
63
|
+
└─────────────────┘ └────────────────┘ └──────────────────┘ └────────────────┘ └───────┬────────┘
|
|
64
|
+
│ done
|
|
65
|
+
┌──────────────┐ ┌───────▼────────┐
|
|
66
|
+
│ /merger │<────────────────────────────────────────────────────│ /executor │
|
|
67
|
+
│ Domain │ │ Full-Stack │
|
|
68
|
+
│ Merger │ │ Developer │
|
|
69
|
+
└──────────────┘ └────────────────┘
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Skill reference
|
|
73
|
+
|
|
74
|
+
| Skill | Role | Input | Output | Tone |
|
|
75
|
+
|-------|------|-------|--------|------|
|
|
76
|
+
| `/pm` | Product Manager | Описание фичи | 01-intent.md, metadata.yaml | Дружелюбный, настойчивый |
|
|
77
|
+
| `/scenarios` | Scenario Writer | PRDCT-XXXX | 02-scenarios.md | Перфекционист поведения |
|
|
78
|
+
| `/analyst` | System Analyst | PRDCT-XXXX | 03-analysis.md | Педант + системный мыслитель |
|
|
79
|
+
| `/domain-framer` | Domain Framer | PRDCT-XXXX | 04-domain.md | DDD-эксперт |
|
|
80
|
+
| `/designer` | UI/UX Designer | PRDCT-XXXX | 05-ux.md + mockups/ | UX-перфекционист |
|
|
81
|
+
| `/executor` | Full-Stack Developer | PRDCT-XXXX | Backend + frontend code | Прагматик |
|
|
82
|
+
| `/merger` | Domain Merger | PRDCT-XXXX | Updated domain docs | Педантичный библиотекарь |
|
|
83
|
+
| `/review` | Reviewer | PRDCT-XXXX | Cross-reference report | Жёсткий reviewer |
|
|
84
|
+
| `/verify` | Verifier | PRDCT-XXXX | VERIFICATION.md | Строгий аудитор |
|
|
85
|
+
| `/feature` | Orchestrator | Описание фичи | Полный change package | Меняет роль на каждом этапе |
|
|
86
|
+
| `/bug` | Bug Hunter | Баг / Sentry URL | Root cause + fix | Шерлок Холмс |
|
|
87
|
+
|
|
88
|
+
### Usage patterns
|
|
89
|
+
|
|
90
|
+
**Full pipeline (новая фича):**
|
|
91
|
+
```
|
|
92
|
+
/feature добавить систему оценки тренировок
|
|
93
|
+
```
|
|
94
|
+
Или поэтапно:
|
|
95
|
+
```
|
|
96
|
+
/pm добавить систему оценки тренировок
|
|
97
|
+
/analyst PRDCT-0002
|
|
98
|
+
/scenarios PRDCT-0002
|
|
99
|
+
/designer PRDCT-0002
|
|
100
|
+
/review PRDCT-0002
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Bug investigation:**
|
|
104
|
+
```
|
|
105
|
+
/bug https://sentry.io/issues/PROJ-123/
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### AI role per stage
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
Stage 1 · /pm -> Генерирует intent, задаёт бизнес-вопросы
|
|
112
|
+
Stage 2 · /scenarios -> Gherkin scenarios: happy, edge, error, permission, concurrent
|
|
113
|
+
Stage 3 · /analyst -> System analysis: technical constraints, integration points
|
|
114
|
+
Stage 4 · /domain-framer -> Domain framing: aggregates, rules, events, invariants, UL
|
|
115
|
+
Stage 5 · /designer -> UX: surfaces, flows, states, mockups, permissions per surface
|
|
116
|
+
Post · /executor -> Код: backend + frontend, выводит технику из бизнес-документов
|
|
117
|
+
Post · /merger -> Обновляет domain docs из change package
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## What lives where
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
Question -> Location
|
|
124
|
+
----------------------------------------------------------
|
|
125
|
+
Что делает этот домен? -> domains/[name]/README.md
|
|
126
|
+
Какие бизнес-правила? -> domains/[name]/business-rules.md
|
|
127
|
+
Что не может быть нарушено? -> domains/[name]/invariants.md
|
|
128
|
+
Какие события генерирует домен? -> domains/[name]/events.md
|
|
129
|
+
Какие экраны есть в домене? -> domains/[name]/surfaces.md
|
|
130
|
+
Какие сценарии поведения? -> domains/[name]/scenarios.md
|
|
131
|
+
Как устроен фронтенд? -> contexts/frontend/architecture.md
|
|
132
|
+
Почему принято это архитектурное решение? -> adrs/ADR-XXX.md
|
|
133
|
+
Что изменилось в этой фиче? -> changes/PRDCT-XXXX/
|
|
134
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: meta
|
|
3
|
+
tags:
|
|
4
|
+
- meta
|
|
5
|
+
- map
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Domain Map
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
```mermaid
|
|
13
|
+
graph TB
|
|
14
|
+
subgraph Core
|
|
15
|
+
TS[Training Session]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
subgraph Planned
|
|
19
|
+
SC[Scenario Catalog]
|
|
20
|
+
AS[Assessment]
|
|
21
|
+
LP[Learner Progress]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
subgraph Infrastructure
|
|
25
|
+
LLM[LLM Gateway]
|
|
26
|
+
AUTH[Auth / Identity]
|
|
27
|
+
AN[Analytics]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
SC -->|provides scenario| TS
|
|
31
|
+
AUTH -->|validates user| TS
|
|
32
|
+
TS -->|generates responses| LLM
|
|
33
|
+
TS -->|SessionFinished| AS
|
|
34
|
+
TS -->|SessionFinished| LP
|
|
35
|
+
TS -->|all events| AN
|
|
36
|
+
|
|
37
|
+
style TS fill:#4a9eff,color:#fff
|
|
38
|
+
style SC fill:#ffc107,color:#000
|
|
39
|
+
style AS fill:#ffc107,color:#000
|
|
40
|
+
style LP fill:#ffc107,color:#000
|
|
41
|
+
style LLM fill:#6c757d,color:#fff
|
|
42
|
+
style AUTH fill:#6c757d,color:#fff
|
|
43
|
+
style AN fill:#6c757d,color:#fff
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
> [!info] Legend
|
|
47
|
+
> - Синий: Active (домен задокументирован)
|
|
48
|
+
> - Жёлтый: Planned (упоминается в интеграциях, но не создан)
|
|
49
|
+
> - Серый: Infrastructure (внешние сервисы)
|
|
50
|
+
|
|
51
|
+
## Active domains
|
|
52
|
+
|
|
53
|
+
```dataview
|
|
54
|
+
TABLE owner, status, length(file.inlinks) AS "refs"
|
|
55
|
+
FROM "domains"
|
|
56
|
+
WHERE type = "domain"
|
|
57
|
+
SORT domain
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Domain relationships
|
|
61
|
+
|
|
62
|
+
```dataview
|
|
63
|
+
TABLE domain, file.folder AS "path"
|
|
64
|
+
FROM "domains"
|
|
65
|
+
WHERE type = "integrations"
|
|
66
|
+
SORT domain
|
|
67
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: meta
|
|
3
|
+
tags:
|
|
4
|
+
- meta
|
|
5
|
+
- glossary
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Glossary
|
|
9
|
+
|
|
10
|
+
> [!tip] Auto-index
|
|
11
|
+
> Этот глоссарий автоматически собирает термины из всех доменов.
|
|
12
|
+
|
|
13
|
+
## All terms across domains
|
|
14
|
+
|
|
15
|
+
```dataview
|
|
16
|
+
TABLE domain AS "Domain"
|
|
17
|
+
FROM "domains"
|
|
18
|
+
WHERE type = "ubiquitous-language"
|
|
19
|
+
SORT domain
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Manual cross-domain terms
|
|
23
|
+
|
|
24
|
+
| Term | Definition | Domain | Notes |
|
|
25
|
+
|---|---|---|---|
|
|
26
|
+
| PRDCT | Change package — иммутабельный набор документов, описывающий одно изменение | _meta | Формат: PRDCT-XXXX |
|
|
27
|
+
| ADR | Architecture Decision Record — запись архитектурного решения | _meta | Формат: ADR-XXX |
|
|
28
|
+
| Bounded Context | Явная граница, внутри которой модель имеет определённый смысл | _meta | DDD-термин |
|
|
29
|
+
| Aggregate | Кластер доменных объектов, обрабатываемых как единица | _meta | DDD-термин |
|
|
30
|
+
| Invariant | Правило, которое не может быть нарушено ни при каких обстоятельствах | _meta | Строже чем business rule |
|