Skip to content

Add initial documentation for Studio v2#61

Closed
ainetx wants to merge 106 commits into
mainfrom
v2
Closed

Add initial documentation for Studio v2#61
ainetx wants to merge 106 commits into
mainfrom
v2

Conversation

@ainetx

@ainetx ainetx commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Introduce the investor-facing vision deck and a comprehensive domain model draft for Studio v2, detailing key components and structures essential for understanding the project.

Summary by CodeRabbit

  • Documentation
    • Added an investor-first “Studio” vision deck with open-core “AI control plane” positioning, key workflow examples, architecture overview, ROI framing, roadmap, and competitive comparisons.
    • Added a draft “Studio v2 — Domain Model” detailing registry entities vs object graph, execution run concepts, state/transition policy, authorization and audit logging, recommendation/event/notification lifecycles, and extensibility rules.

Add initial v2 documentation artifacts:
- v2/docs/STUDIO_VISION.md: investor-facing vision deck for Studio v2,
  covering the shadow SDLC graph, validated action engine, connector
  layer, killer workflows, competitive positioning, and expansion roadmap
- v2/docs/domain-model.md: comprehensive domain model draft produced
  through structured brainstorm session, covering Object/Worker/Flow
  base model, GTS identifier conventions (vendor=cf), Contract schema,
  WorkerRun execution model, Tenant hierarchy, Kit extensibility,
  StatePolicy, Role/Policy/Authorization, AuditLog, Recommendation,
  Events/Notifications, and a full SDLC object type catalog (~95 core
  types across 16 domains) with 17 Mermaid diagrams

Signed-off-by: ainetx <viator@via-net.org>
@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 253cd53c-cbd7-4d55-a982-d9369fe279dc

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR replaces the Studio vision deck and expands the Studio v2 domain model draft with entity definitions, lifecycle rules, authorization, auditing, recommendations, notifications, and object reference diagrams.

Changes

Studio Vision Deck

Layer / File(s) Summary
Problem framing and core concept
v2/docs/STUDIO_VISION.md
Introduces slide front-matter, the problem and timing framing, customer segment definition, and the core Studio concept including the shadow SDLC graph, actions, validators, and workflows.
Flow library and platform architecture
v2/docs/STUDIO_VISION.md
Adds the Flow Library, human-centric automation contract, platform architecture, integration advantage, and SaaS/Gears building blocks.
AI efficiency, business model, and market positioning
v2/docs/STUDIO_VISION.md
Describes AI cost efficiency controls, developer experience principles, ROI metrics, business model, moat flywheel, competitor comparisons, roadmap phases, investor objections, and closing statements.

Studio v2 Domain Model

Layer / File(s) Summary
Overview diagrams and entity categories
v2/docs/domain-model.md
Introduces the document, diagrams for object and registry relationships, and the top-level Object versus Registry entities framing.
Type conventions and core registry schemas
v2/docs/domain-model.md
Defines GTS identifier conventions, Studio base types, derived object types, and the Contract, Worker, and WorkerImplementation schemas.
Execution and flow lifecycle
v2/docs/domain-model.md
Defines WorkerRun lifecycle and retry semantics, then specifies Flow, FlowRun, Tenant, User, and Workspace shapes.
Kit extensibility, state policies, and authorization
v2/docs/domain-model.md
Documents kit extensibility rules, StatePolicy matching and projections, and the authorization model including roles, permissions, policies, overrides, identity mapping, and delegation.
Audit, recommendations, events, and notifications
v2/docs/domain-model.md
Covers AuditLog materialization and export, Recommendation lifecycle, Studio event types and delivery rules, and NotificationRule, override, subscription, and channel definitions.
Object catalog, vendor examples, and reference diagrams
v2/docs/domain-model.md
Adds the object type catalog appendix, vendor kit extension examples, and the object reference diagrams with closing attribution.

Estimated code review effort: 2 (Simple) | ~15 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding initial Studio v2 documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch v2

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@v2/docs/domain-model.md`:
- Around line 56-61: The domain model is inconsistent because Tenant is listed
as a subtype of Object in the inheritance diagram while later documentation
treats Tenant as a separate Gears RG type with Object instances belonging to a
tenantId. Update the Mermaid relationship near the Tenant, Workspace, WorkerRun,
FlowRun, Role, and Recommendation declarations, and align the Tenant section so
it is either a peer root entity or explicitly modeled as an Object subtype
everywhere, with the tenantId ownership rule matching that choice.
- Around line 105-109: The domain model uses inconsistent naming for the worker
implementation entity: the Worker class currently references WorkerImpl, while
the rest of the spec uses WorkerImplementation. Update the Worker definition to
use the same implementation type name everywhere, including the implementationId
reference and any related diagram labels or mentions in the domain model, so
schema/tooling references stay consistent.
- Around line 1200-1410: Normalize the appendix so every type uses the same
canonical GTS identifier form as the earlier
`gts.cf.studio.core.object.v1~cf.studio.core.<type>.v1~` syntax. Update the
domain lists in `domain-model.md` so the referenced symbols (for example the
base types and entries like `cf.studio.core.document.v1~`,
`cf.studio.core.infra_config.v1~`, `cf.studio.core.prompt.v1~`, and the
domain-specific type names) are all expressed consistently in the chained
format, making this section machine-consistent with the rest of the spec.
- Around line 894-905: The StateTransitionEvent projection is referencing
WorkerRun.timestamp, but WorkerRun does not define that field in the worker
schema. Update the projection in the StateTransitionEvent definition to use an
existing WorkerRun time field such as createdAt or updatedAt from the Object
model, or introduce a real timestamp field on WorkerRun if that is the intended
source, and keep the field name consistent throughout the WorkerRun and
StateTransitionEvent descriptions.

In `@v2/docs/STUDIO_VISION.md`:
- Around line 548-551: Fix the visible typo in the ROI metrics list by
correcting the misspelled bullet in STUDIO_VISION’s metrics section; update the
item containing “artficats” so it reads “artifacts” and keep the surrounding
metric wording consistent with the other bullets in that same list.
- Line 59: Tighten the opening problem-statement bullet in STUDIO_VISION.md so
it reads cleanly and professionally; fix the awkward phrasing and typos in the
paragraph about AI tools, especially the references to IDEs like Cursor/GitHub
and the “convinient”/“capabilitie…” wording. Update the text in that bullet to a
concise, polished version while preserving the original meaning about non-R&D
teams struggling with adoption and collaboration.
- Around line 700-731: The roadmap phase headings in STUDIO_VISION.md are using
a heading level that skips from the section title and triggers the MD001
warning. Update the Phase 1–4 headings in the roadmap block to use a consistent,
non-skipping ladder (for example, `##` or `###` relative to the surrounding
title) so the document remains lint-clean and easier to scan.
- Around line 24-27: Separate the desktop and mobile targets in the platform
list so the wording does not imply iOS/Android are desktop systems. Update the
affected bullet in STUDIO_VISION.md to clearly distinguish the desktop
application targets from the mobile targets, keeping the web app and CLI entries
unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d8792195-9d3a-4490-88cd-8c62fadbcb75

📥 Commits

Reviewing files that changed from the base of the PR and between 5531bd4 and 05ea3f6.

📒 Files selected for processing (2)
  • v2/docs/STUDIO_VISION.md
  • v2/docs/domain-model.md

Comment thread v2/docs/domain-model.md Outdated
Comment on lines +56 to +61
Object <|-- Tenant
Object <|-- Workspace
Object <|-- WorkerRun
Object <|-- FlowRun
Object <|-- Role
Object <|-- Recommendation

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift

Resolve the Tenant/Object contradiction.

Tenant is shown as an Object subtype here, but the Tenant section later treats it as a separate Gears RG type and still says every Object belongs to exactly one tenantId. That leaves the root tenant model inconsistent.

Suggested fix
-    Object <|-- Tenant
     Object <|-- Workspace
...
- Every Object belongs to exactly one Tenant (`tenantId`).
+ Every tenant-scoped Object belongs to exactly one Tenant (`tenantId`).

Also applies to: 702-717

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/domain-model.md` around lines 56 - 61, The domain model is
inconsistent because Tenant is listed as a subtype of Object in the inheritance
diagram while later documentation treats Tenant as a separate Gears RG type with
Object instances belonging to a tenantId. Update the Mermaid relationship near
the Tenant, Workspace, WorkerRun, FlowRun, Role, and Recommendation
declarations, and align the Tenant section so it is either a peer root entity or
explicitly modeled as an Object subtype everywhere, with the tenantId ownership
rule matching that choice.

Comment thread v2/docs/domain-model.md
Comment on lines +105 to +109
class Worker {
id: GTS Type ID
scope: local|project|workspace|published
implementationId: ref WorkerImpl
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use the same implementation type name everywhere.

WorkerImpl only appears here; the rest of the spec uses WorkerImplementation. That mismatch will break schema/tooling references and makes the diagram read as if there are two different entities.

Suggested fix
-        implementationId: ref WorkerImpl
+        implementationId: ref WorkerImplementation
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
class Worker {
id: GTS Type ID
scope: local|project|workspace|published
implementationId: ref WorkerImpl
}
class Worker {
id: GTS Type ID
scope: local|project|workspace|published
implementationId: ref WorkerImplementation
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/domain-model.md` around lines 105 - 109, The domain model uses
inconsistent naming for the worker implementation entity: the Worker class
currently references WorkerImpl, while the rest of the spec uses
WorkerImplementation. Update the Worker definition to use the same
implementation type name everywhere, including the implementationId reference
and any related diagram labels or mentions in the domain model, so
schema/tooling references stay consistent.

Comment thread v2/docs/domain-model.md
Comment on lines +894 to +905
`StateTransitionEvent` is a **computed projection** over the WorkerRun tree.

```
StateTransitionEvent (projection) {
objectId: from WorkerRun input/output diff
property: derived
fromValue: WorkerRun.inputData[property]
toValue: WorkerRun.outputData[property]
workerRunId: WorkerRun.id
timestamp: WorkerRun.timestamp
evidence?: WorkerRun.outputData[evidence]
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Don't reference a field that WorkerRun doesn't define.

WorkerRun.timestamp is never introduced anywhere in the worker schema; the object model only gives you createdAt/updatedAt via Object. Pick one of those, or add an explicit timestamp field to WorkerRun.

Suggested fix
-  timestamp:   WorkerRun.timestamp
+  timestamp:   WorkerRun.createdAt
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
`StateTransitionEvent` is a **computed projection** over the WorkerRun tree.
```
StateTransitionEvent (projection) {
objectId: from WorkerRun input/output diff
property: derived
fromValue: WorkerRun.inputData[property]
toValue: WorkerRun.outputData[property]
workerRunId: WorkerRun.id
timestamp: WorkerRun.timestamp
evidence?: WorkerRun.outputData[evidence]
}
`StateTransitionEvent` is a **computed projection** over the WorkerRun tree.
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 896-896: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/domain-model.md` around lines 894 - 905, The StateTransitionEvent
projection is referencing WorkerRun.timestamp, but WorkerRun does not define
that field in the worker schema. Update the projection in the
StateTransitionEvent definition to use an existing WorkerRun time field such as
createdAt or updatedAt from the Object model, or introduce a real timestamp
field on WorkerRun if that is the intended source, and keep the field name
consistent throughout the WorkerRun and StateTransitionEvent descriptions.

Comment thread v2/docs/domain-model.md
Comment on lines +1200 to +1410
```
gts.cf.studio.core.object.v1~cf.studio.core.<type>.v1~
```

### Base Types (abstract)

```
cf.studio.core.document.v1~ // base for all textual/structured artifacts
cf.studio.core.infra_config.v1~ // base for all infrastructure configurations
cf.studio.core.prompt.v1~ // base for all AI prompt artifacts
```

### Domain 1 — Product / Requirements

```
cf.studio.core.prd.v1~ // → document
cf.studio.core.epic.v1~
cf.studio.core.user_story.v1~
cf.studio.core.requirement.v1~
cf.studio.core.acceptance_criteria.v1~
cf.studio.core.use_case.v1~
cf.studio.core.user_persona.v1~
cf.studio.core.product_roadmap.v1~
cf.studio.core.feature_spec.v1~ // → document (Studio SDLC FEATURE)
cf.studio.core.decomposition.v1~ // → document (Studio SDLC DECOMPOSITION)
```

### Domain 2 — Architecture / Design

```
cf.studio.core.design.v1~ // → document (Studio SDLC DESIGN)
cf.studio.core.adr.v1~ // → document (Architecture Decision Record)
cf.studio.core.component.v1~
cf.studio.core.interface_definition.v1~
cf.studio.core.api_spec.v1~ // OpenAPI / GraphQL / gRPC
cf.studio.core.data_model.v1~
cf.studio.core.architecture_diagram.v1~
```

### Domain 3 — Source Code

```
cf.studio.core.repository.v1~
cf.studio.core.source_file.v1~
cf.studio.core.module.v1~ // package, namespace, library
cf.studio.core.complexity_metric.v1~ // cyclomatic/cognitive complexity
```

### Domain 4 — Work Items

```
cf.studio.core.task.v1~
cf.studio.core.bug.v1~
cf.studio.core.spike.v1~
cf.studio.core.tech_debt_item.v1~
cf.studio.core.change_request.v1~
```

### Domain 5 — Collaboration

```
cf.studio.core.comment.v1~
cf.studio.core.review_comment.v1~
cf.studio.core.decision.v1~
cf.studio.core.meeting_note.v1~ // → document
cf.studio.core.approval.v1~
```

### Domain 6 — Version Control

```
// cf.studio.core.repository.v1~ // defined in Domain 3
cf.studio.core.branch.v1~
cf.studio.core.commit.v1~
cf.studio.core.tag.v1~
cf.studio.core.pull_request.v1~ // canonical (PR + MR)
cf.studio.core.diff.v1~
cf.studio.core.merge_conflict.v1~
```

### Domain 7 — CI/CD / Build

```
cf.studio.core.pipeline.v1~ // pipeline definition
cf.studio.core.pipeline_run.v1~ // execution instance
cf.studio.core.build.v1~
cf.studio.core.pipeline_job.v1~ // job within pipeline
cf.studio.core.pipeline_step.v1~ // step within job
cf.studio.core.test_run.v1~
cf.studio.core.test_case.v1~
cf.studio.core.test_result.v1~
cf.studio.core.code_coverage_report.v1~
cf.studio.core.build_artifact.v1~ // binary, package, image
cf.studio.core.deployment.v1~
cf.studio.core.deployment_status.v1~
cf.studio.core.runner.v1~ // GitHub runner, Jenkins agent, GitLab runner
cf.studio.core.performance_benchmark.v1~ // k6, Locust, JMH
```

### Domain 8 — Artifacts / Packages

```
cf.studio.core.package.v1~
cf.studio.core.package_version.v1~
cf.studio.core.container_image.v1~
cf.studio.core.container_image_tag.v1~
cf.studio.core.sbom.v1~ // Software Bill of Materials
```

### Domain 9 — Release

```
cf.studio.core.release.v1~
cf.studio.core.release_notes.v1~ // → document
cf.studio.core.changelog.v1~ // → document
cf.studio.core.version.v1~
cf.studio.core.release_candidate.v1~
```

### Domain 10 — Operations / Incidents

```
cf.studio.core.incident.v1~
cf.studio.core.alert.v1~
cf.studio.core.runbook.v1~ // → document
cf.studio.core.postmortem.v1~ // → document
cf.studio.core.slo.v1~ // Service Level Objective
cf.studio.core.sli.v1~ // Service Level Indicator
cf.studio.core.on_call_schedule.v1~
cf.studio.core.escalation_policy.v1~
cf.studio.core.health_check.v1~
cf.studio.core.metric_definition.v1~ // metric schema/definition, not time-series data
cf.studio.core.quality_metric.v1~ // code quality, test coverage metrics
```

### Domain 11 — Security

```
cf.studio.core.vulnerability.v1~
cf.studio.core.cve.v1~
cf.studio.core.security_finding.v1~ // pentest, code scan, secret scan
cf.studio.core.threat_model.v1~ // → document
cf.studio.core.security_review.v1~ // → document
cf.studio.core.dependency_vulnerability.v1~ // Dependabot, Snyk
```

### Domain 12 — Compliance / Governance

```
cf.studio.core.audit_finding.v1~
cf.studio.core.compliance_check.v1~
cf.studio.core.compliance_check_result.v1~
cf.studio.core.policy_exception.v1~
cf.studio.core.compliance_report.v1~ // → document
cf.studio.core.cost_report.v1~ // AI cost, infrastructure cost
```

### Domain 13 — People / Teams

```
cf.studio.core.person.v1~
cf.studio.core.team.v1~
cf.studio.core.org_unit.v1~ // department, division
```

### Domain 14 — Infrastructure

```
cf.studio.core.environment.v1~ // dev, staging, prod
cf.studio.core.service.v1~ // microservice, cloud service
cf.studio.core.cluster.v1~ // K8s, ECS, EKS
cf.studio.core.resource.v1~ // generic cloud resource
cf.studio.core.namespace.v1~ // K8s namespace, logical grouping
cf.studio.core.secret_reference.v1~ // reference only: name, vault_path, provider — no value stored
cf.studio.core.certificate.v1~
cf.studio.core.infra_config.v1~ // base (abstract)
// narrowed by Kit:
// ~cf.studio.core.terraform_resource.v1~
// ~cf.studio.core.helm_release.v1~
// ~cf.studio.core.k8s_manifest.v1~
```

### Domain 15 — Documents

```
cf.studio.core.document.v1~ // base (abstract)
// narrowed types:
cf.studio.core.spec.v1~ // → document
cf.studio.core.guide.v1~ // → document
cf.studio.core.readme.v1~ // → document
cf.studio.core.wiki_page.v1~ // → document
cf.studio.core.api_documentation.v1~ // → document
cf.studio.core.glossary.v1~ // → document
// policy/governance docs use document with category tag
```

### Domain 16 — AI / Agents

```
cf.studio.core.prompt.v1~ // base (abstract)
cf.studio.core.skill.v1~ // → prompt (reusable agent instruction)
cf.studio.core.system_prompt.v1~ // → prompt
cf.studio.core.prompt_template.v1~ // → prompt
cf.studio.core.prompt_variant.v1~ // → prompt (A/B variant)
cf.studio.core.ai_agent.v1~
cf.studio.core.ai_tool.v1~
cf.studio.core.evaluation_run.v1~
cf.studio.core.evaluation_result.v1~
// llm_model → reference to Gears Models Registry (no separate Object type)
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift

Normalize the appendix to one GTS identifier format.

The catalog switches from the chained gts.cf... syntax used earlier to bare cf.studio.core.* identifiers here. As written, this section is not a canonical source of truth because the IDs are not machine-consistent with the rest of the spec.

Representative normalization
- cf.studio.core.prd.v1~
+ gts.cf.studio.core.object.v1~cf.studio.core.prd.v1~
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 1200-1200: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 1200-1200: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1206-1206: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1214-1214: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1229-1229: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1241-1241: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1250-1250: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1260-1260: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1270-1270: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1282-1282: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1301-1301: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1311-1311: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1321-1321: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1337-1337: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1348-1348: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1359-1359: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1367-1367: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1384-1384: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1398-1398: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/domain-model.md` around lines 1200 - 1410, Normalize the appendix so
every type uses the same canonical GTS identifier form as the earlier
`gts.cf.studio.core.object.v1~cf.studio.core.<type>.v1~` syntax. Update the
domain lists in `domain-model.md` so the referenced symbols (for example the
base types and entries like `cf.studio.core.document.v1~`,
`cf.studio.core.infra_config.v1~`, `cf.studio.core.prompt.v1~`, and the
domain-specific type names) are all expressed consistently in the chained
format, making this section machine-consistent with the rest of the spec.

Comment thread v2/docs/STUDIO_VISION.md
Comment on lines +24 to +27
- It is implemented as:
- A web application in a browser
- A desktop application for macOS, Linux, Windows, iOS/Android
- A CLI that can be used from other tools (less beneficial because all the existing tools were created for developers and will not benefit all other roles)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Separate the desktop and mobile targets.

iOS/Android are mobile platforms, so this currently reads like the deck promises a desktop app for mobile OSes. Splitting the targets will avoid a misleading product claim.

Suggested rewrite
-  - A desktop application for macOS, Linux, Windows, iOS/Android
+  - Desktop application for macOS, Linux, Windows
+  - Mobile application for iOS/Android
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- It is implemented as:
- A web application in a browser
- A desktop application for macOS, Linux, Windows, iOS/Android
- A CLI that can be used from other tools (less beneficial because all the existing tools were created for developers and will not benefit all other roles)
- It is implemented as:
- A web application in a browser
- Desktop application for macOS, Linux, Windows
- Mobile application for iOS/Android
- A CLI that can be used from other tools (less beneficial because all the existing tools were created for developers and will not benefit all other roles)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/STUDIO_VISION.md` around lines 24 - 27, Separate the desktop and
mobile targets in the platform list so the wording does not imply iOS/Android
are desktop systems. Update the affected bullet in STUDIO_VISION.md to clearly
distinguish the desktop application targets from the mobile targets, keeping the
web app and CLI entries unchanged.

Comment thread v2/docs/STUDIO_VISION.md
AI coding tools help teams generate more code faster.
But complex software delivery still breaks across handoffs:

- Modern AI tools were created with the R&D in mind. Other organizations and functions - Product Management, GTM - are having a hard time adopting AI using R&D-centric tools (IDEs - such as Cursor or GitHub are not the native Product Management tools for example and they require a very steep learning curve and do not provide convinient and efficient collaboration capabilities).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Tighten the problem-statement copy.

This bullet has typos/awkward phrasing (convinient, capabilitie...) and is the first dense paragraph in the deck, so it should read cleanly.

Suggested rewrite
-  - Modern AI tools were created with the R&D in mind. Other organizations and functions - Product Management, GTM - are having a hard time adopting AI using R&D-centric tools (IDEs - such as Cursor or GitHub are not the native Product Management tools for example and they require a very steep learning curve and do not provide convinient and efficient collaboration capabilities).
+  - Modern AI tools were created with R&D teams in mind. Other functions — such as Product Management and GTM — struggle to adopt AI using R&D-centric tools. IDEs such as Cursor or GitHub are not native Product Management tools, require a steep learning curve, and do not provide convenient, efficient collaboration capabilities.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Modern AI tools were created with the R&D in mind. Other organizations and functions - Product Management, GTM - are having a hard time adopting AI using R&D-centric tools (IDEs - such as Cursor or GitHub are not the native Product Management tools for example and they require a very steep learning curve and do not provide convinient and efficient collaboration capabilities).
- Modern AI tools were created with R&D teams in mind. Other functions — such as Product Management and GTM — struggle to adopt AI using R&D-centric tools. IDEs such as Cursor or GitHub are not native Product Management tools, require a steep learning curve, and do not provide convenient, efficient collaboration capabilities.
🧰 Tools
🪛 LanguageTool

[grammar] ~59-~59: Ensure spelling is correct
Context: ...steep learning curve and do not provide convinient and efficient collaboration capabilitie...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/STUDIO_VISION.md` at line 59, Tighten the opening problem-statement
bullet in STUDIO_VISION.md so it reads cleanly and professionally; fix the
awkward phrasing and typos in the paragraph about AI tools, especially the
references to IDEs like Cursor/GitHub and the “convinient”/“capabilitie…”
wording. Update the text in that bullet to a concise, polished version while
preserving the original meaning about non-R&D teams struggling with adoption and
collaboration.

Source: Linters/SAST tools

Comment thread v2/docs/STUDIO_VISION.md
Comment on lines +548 to +551
- Higher requirement-to-test coverage
- Fewer stale design/code mismatches
- Fewer rejected AI-generated artficats
- Lower AI cost per accepted change

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix the typo in the ROI metric.

artficats should be artifacts; this is a visible typo in a customer-facing slide.

Suggested rewrite
-  - Fewer rejected AI-generated artficats
+  - Fewer rejected AI-generated artifacts
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Higher requirement-to-test coverage
- Fewer stale design/code mismatches
- Fewer rejected AI-generated artficats
- Lower AI cost per accepted change
- Higher requirement-to-test coverage
- Fewer stale design/code mismatches
- Fewer rejected AI-generated artifacts
- Lower AI cost per accepted change
🧰 Tools
🪛 LanguageTool

[grammar] ~550-~550: Ensure spelling is correct
Context: ...ismatches - Fewer rejected AI-generated artficats - Lower AI cost per accepted change </...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/STUDIO_VISION.md` around lines 548 - 551, Fix the visible typo in the
ROI metrics list by correcting the misspelled bullet in STUDIO_VISION’s metrics
section; update the item containing “artficats” so it reads “artifacts” and keep
the surrounding metric wording consistent with the other bullets in that same
list.

Source: Linters/SAST tools

Comment thread v2/docs/STUDIO_VISION.md
Comment on lines +700 to +731
#### Phase 1: Studio CLI PoC

- Repo-local CLI setup and IDE agent integration
- SDLC kit: PRD → DESIGN → decomposition → FEATURE → implementation
- Deterministic checks for artifacts, traceability, language, and links
- Dependency map across documents, code, tests, and reviews

#### Phase 2: Validated actions

- Gap analysis
- Contradiction detection
- Autonomous bug-fixing
- PR validation

---

# Expansion Roadmap

#### Phase 3: Centralized automation

- Team and role-based workspaces and collaboration
- Visual workflow builder and flow catalog
- UI/UX for workflows, approvals, exceptions, evidence, and handoffs
- Notifications and alerts for gaps, risks, stale work, and failures
- Dashboards for delivery health, AI cost, and release readiness

#### Phase 4: Enterprise control plane

- Insight integration at scale
- Private/on-prem deployment
- Advanced AI and world model
- Operations automation

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use a consistent heading ladder for the roadmap phases.

#### skips levels from the slide title and matches the MD001 warning. ## or ### will keep the deck lint-clean and easier to scan.

Suggested rewrite
-#### Phase 1: Studio CLI PoC
+## Phase 1: Studio CLI PoC
@@
-#### Phase 2: Validated actions
+## Phase 2: Validated actions
@@
-#### Phase 3: Centralized automation
+## Phase 3: Centralized automation
@@
-#### Phase 4: Enterprise control plane
+## Phase 4: Enterprise control plane
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#### Phase 1: Studio CLI PoC
- Repo-local CLI setup and IDE agent integration
- SDLC kit: PRD → DESIGN → decomposition → FEATURE → implementation
- Deterministic checks for artifacts, traceability, language, and links
- Dependency map across documents, code, tests, and reviews
#### Phase 2: Validated actions
- Gap analysis
- Contradiction detection
- Autonomous bug-fixing
- PR validation
---
# Expansion Roadmap
#### Phase 3: Centralized automation
- Team and role-based workspaces and collaboration
- Visual workflow builder and flow catalog
- UI/UX for workflows, approvals, exceptions, evidence, and handoffs
- Notifications and alerts for gaps, risks, stale work, and failures
- Dashboards for delivery health, AI cost, and release readiness
#### Phase 4: Enterprise control plane
- Insight integration at scale
- Private/on-prem deployment
- Advanced AI and world model
- Operations automation
## Phase 1: Studio CLI PoC
- Repo-local CLI setup and IDE agent integration
- SDLC kit: PRD → DESIGN → decomposition → FEATURE → implementation
- Deterministic checks for artifacts, traceability, language, and links
- Dependency map across documents, code, tests, and reviews
## Phase 2: Validated actions
- Gap analysis
- Contradiction detection
- Autonomous bug-fixing
- PR validation
---
# Expansion Roadmap
## Phase 3: Centralized automation
- Team and role-based workspaces and collaboration
- Visual workflow builder and flow catalog
- UI/UX for workflows, approvals, exceptions, evidence, and handoffs
- Notifications and alerts for gaps, risks, stale work, and failures
- Dashboards for delivery health, AI cost, and release readiness
## Phase 4: Enterprise control plane
- Insight integration at scale
- Private/on-prem deployment
- Advanced AI and world model
- Operations automation
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 700-700: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


[warning] 718-718: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/STUDIO_VISION.md` around lines 700 - 731, The roadmap phase headings
in STUDIO_VISION.md are using a heading level that skips from the section title
and triggers the MD001 warning. Update the Phase 1–4 headings in the roadmap
block to use a consistent, non-skipping ladder (for example, `##` or `###`
relative to the surrounding title) so the document remains lint-clean and easier
to scan.

Source: Linters/SAST tools

… hierarchy and cross-references

Signed-off-by: ainetx <viator@via-net.org>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@v2/docs/domain-model.md`:
- Around line 1772-1775: The AuditLog Mermaid block is using freeform text
inside a class body, which is invalid classDiagram syntax. Update the AuditLog
definition in the domain model diagram so the class body contains only valid
Mermaid class members or move the “materialized view” and “over WorkerRun tree”
text into a proper note/comment/relationship syntax that Mermaid can parse.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8e3c8226-b0e5-4a18-a0f5-72172c16a895

📥 Commits

Reviewing files that changed from the base of the PR and between 05ea3f6 and c8a4672.

📒 Files selected for processing (1)
  • v2/docs/domain-model.md

Comment thread v2/docs/domain-model.md Outdated
Comment on lines +1772 to +1775
class AuditLog {
materialized view
over WorkerRun tree
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Fix the Mermaid syntax in AuditLog.

The freeform prose inside the class body (materialized view / over WorkerRun tree) is not valid classDiagram member syntax, so this block is likely to render incorrectly or fail to parse.

Suggested fix
 class AuditLog {
-        materialized view
-        over WorkerRun tree
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
class AuditLog {
materialized view
over WorkerRun tree
}
class AuditLog {
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/domain-model.md` around lines 1772 - 1775, The AuditLog Mermaid block
is using freeform text inside a class body, which is invalid classDiagram
syntax. Update the AuditLog definition in the domain model diagram so the class
body contains only valid Mermaid class members or move the “materialized view”
and “over WorkerRun tree” text into a proper note/comment/relationship syntax
that Mermaid can parse.

ainetx added 3 commits July 2, 2026 18:57
- Add component_version, component_dependency, release_component types
  to complete the component and release domain models
- Add 7 new cross-reference diagrams (D32-D38): component ownership,
  component↔docs, component↔people/teams, release cross-refs,
  release↔work-items traceability, full component→release→deployment
  chain, and component dependency graph
- Fix Studio event GTS type: extend Gears platform event base type
  gts.cf.core.events.type.v1~ instead of defining a conflicting
  gts.cf.studio.core.event.v1~ base type
- Verify all Studio GTS types against Gears base types; confirm
  Worker, Flow, Kit, Role remain first-class Studio types

Signed-off-by: ainetx <viator@via-net.org>
… types and diagrams

Add Domain 3a (Technology Stack) with 10 new object types:
  tech_stack, library, library_version, framework, runtime,
  database, database_instance, third_party_service, cloud_service,
  tech_dependency

Add 5 cross-reference diagrams (D39-D43):
  D39 - tech stack type hierarchy (library, framework, runtime)
  D40 - data and external service dependencies
  D41 - component ↔ full technology stack
  D42 - library_version ↔ security/vulnerability chain
  D43 - tech stack ↔ release pinning and compliance (SBOM, license)

Signed-off-by: ainetx <viator@via-net.org>
Add Domain 8a (SBOM) with 5 new object types:
  sbom           - SBOM document (SPDX / CycloneDX / SWID)
  sbom_component - package/library entry within an SBOM
  sbom_relationship - directed relationship between sbom_components
                    (CONTAINS, DEPENDS_ON, DESCRIBES, GENERATED_FROM,
                     VARIANT_OF, PATCH_OF)
  sbom_license   - SPDX license expression per component
  sbom_checksum  - cryptographic hash (SHA256, SHA1, MD5, BLAKE2)

Add 4 cross-reference diagrams (D44-D47):
  D44 - SBOM document structure and relationships
  D45 - sbom_component details (license, checksum, library_version mapping)
  D46 - SBOM cross-references (artifact → sbom → component → vulnerability)
  D47 - SBOM ↔ security scanning and license compliance chain

Signed-off-by: ainetx <viator@via-net.org>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@v2/docs/domain-model.md`:
- Around line 1271-1282: Add a language tag to the unlabeled fenced blocks in
the domain model appendix so they no longer trigger MD040; update the fences in
the section containing the core entity list, and make the same change in the
other referenced appendix block, using a neutral tag like text. Locate the
affected markdown fences by the core symbols such as
cf.studio.core.tech_stack.v1, cf.studio.core.library.v1, and
cf.studio.core.tech_dependency.v1, and ensure every fenced block in those
appendix sections is explicitly labeled.
- Around line 2156-2161: The sbom_relationship enum is inconsistent with the
earlier SBOM relationship catalog because PATCH_OF is missing here. Update the
sbom_relationship definition to include PATCH_OF alongside the existing kinds so
the schema matches the catalog and uses one consistent allowed enum set across
the spec.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0ec73e1a-e2d3-449a-9775-623847753a62

📥 Commits

Reviewing files that changed from the base of the PR and between c8a4672 and 45023ad.

📒 Files selected for processing (1)
  • v2/docs/domain-model.md

Comment thread v2/docs/domain-model.md
Comment on lines +1271 to +1282
```
cf.studio.core.tech_stack.v1~ // declared technology stack of a component/project
cf.studio.core.library.v1~ // software library / package (npm, PyPI, Maven, etc.)
cf.studio.core.library_version.v1~ // specific pinned version of a library
cf.studio.core.framework.v1~ // framework (React, Django, Spring, Rails, etc.)
cf.studio.core.runtime.v1~ // runtime environment (Node.js v20, Python 3.11, JVM 21)
cf.studio.core.database.v1~ // database technology (PostgreSQL, MongoDB, Redis, etc.)
cf.studio.core.database_instance.v1~ // specific deployed database instance
cf.studio.core.third_party_service.v1~ // external SaaS dependency (Stripe, SendGrid, Auth0)
cf.studio.core.cloud_service.v1~ // managed cloud service (AWS S3, GCP Pub/Sub, Azure SB)
cf.studio.core.tech_dependency.v1~ // directed: component uses library_version / database / service
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Label these fences with a language.

These blocks trip MD040 as plain fenced code. Add a language tag such as text so the appendix stays lint-clean.

Suggested fix
-```
+```text

Also applies to: 1346-1356

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 1271-1271: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/domain-model.md` around lines 1271 - 1282, Add a language tag to the
unlabeled fenced blocks in the domain model appendix so they no longer trigger
MD040; update the fences in the section containing the core entity list, and
make the same change in the other referenced appendix block, using a neutral tag
like text. Locate the affected markdown fences by the core symbols such as
cf.studio.core.tech_stack.v1, cf.studio.core.library.v1, and
cf.studio.core.tech_dependency.v1, and ensure every fenced block in those
appendix sections is explicitly labeled.

Source: Linters/SAST tools

Comment thread v2/docs/domain-model.md
Comment on lines +2156 to +2161
class sbom_relationship {
sbomId: ref sbom
sourceId: ref sbom_component
targetId: ref sbom_component
kind: CONTAINS|DEPENDS_ON|DESCRIBES|GENERATED_FROM|VARIANT_OF
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Keep the SBOM relationship enum consistent.

PATCH_OF is listed in the earlier SBOM relationship catalog, but this schema omits it. That leaves the spec with two different allowed enums.

Suggested fix
-        kind: CONTAINS|DEPENDS_ON|DESCRIBES|GENERATED_FROM|VARIANT_OF
+        kind: CONTAINS|DEPENDS_ON|DESCRIBES|GENERATED_FROM|VARIANT_OF|PATCH_OF
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
class sbom_relationship {
sbomId: ref sbom
sourceId: ref sbom_component
targetId: ref sbom_component
kind: CONTAINS|DEPENDS_ON|DESCRIBES|GENERATED_FROM|VARIANT_OF
}
class sbom_relationship {
sbomId: ref sbom
sourceId: ref sbom_component
targetId: ref sbom_component
kind: CONTAINS|DEPENDS_ON|DESCRIBES|GENERATED_FROM|VARIANT_OF|PATCH_OF
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v2/docs/domain-model.md` around lines 2156 - 2161, The sbom_relationship enum
is inconsistent with the earlier SBOM relationship catalog because PATCH_OF is
missing here. Update the sbom_relationship definition to include PATCH_OF
alongside the existing kinds so the schema matches the catalog and uses one
consistent allowed enum set across the spec.

…, staleness, approvals

Address critical gaps identified in gap analysis vs STUDIO_VISION.md:

Object base type:
  - Add ownerId, validationStatus, stalenessScore, externalRef to base Object
  - stalenessScore = max(timeStaleness, dependencyStaleness, syncStaleness)

New registry entities:
  - Validator (extends Worker): maxRetries, escalateTo, abortOnLimit
  - Connector: OAGW-backed integration with field mapping, write-back policy,
    sync protocol (push/pull), rate limiting, scope filter per Tenant

New Object types:
  - ValidationSession: aggregates retry loop for one Validator run
  - ValidationResult: per-attempt result with superseded/revoked lifecycle
  - Evidence: structured proof of action/validation with valid/superseded/revoked

WorkerRun state machine: add escalated + aborted states

Staleness model (Section 20):
  - stalenessPolicy in x-gts-traits per type (timeTTL, dependencyTypes, threshold)
  - stale_artifact_detection Analyzer updates score async (15min + onEvent debounce)

Approval & Human Control (Section 21):
  - Generic Approval with kind discriminator + typed payload per kind
  - security_exception payload: expiresAt, mitigations, secondaryApprover, autoReviewAfter
  - customerImpact optional field for customer-facing decisions

Flow Library Catalog (Section 22):
  - 12 Analyzer Workers with runtime, profile, input Contract per Analyzer
  - 2 Flows: bug_to_fix_pr_flow (Killer Workflow 1), release_readiness_review
  - Worker metadata: displayName, description, category, profile

Traceability (Section 23):
  - pull_request: closesIssues, implementsRequirements, conformsToDesign, verifiedBy
  - test_case: verifiesRequirements, verifiesFeature
  - pr_design_validator: hybrid Validator triggered on PR → review

Signed-off-by: ainetx <viator@via-net.org>
@ainetx
ainetx marked this pull request as draft July 3, 2026 08:31
ainetx and others added 19 commits July 3, 2026 13:28
…domain model

Signed-off-by: ainetx <viator@via-net.org>
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…25 Platform Workers

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
… state to round 25

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…input, cancel()

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…rieval, chunkRef audit

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…tion instance

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…n extends WorkerRun

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…eparate

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…mes UI concept

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
… security annotations, Flow step binding

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…ray in Contract §3

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…Studio v2 Workers/Flows/Connectors

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…WorkerImplementation.defaultSchedule

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…pendencies

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
…chema with role enum

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Version: skill=1.5.9, cli=1.5.10.dev73
Studio-Workflows: cf-brainstorm
ainetx and others added 27 commits July 8, 2026 15:53
Root cause: clearAll via forEach called dismissRunToast N times with
separate set() calls — Zustand could batch/race them and drop some IDs.

Fix: add clearAllRunToasts() action to store that collects all current
terminal run IDs not yet dismissed and appends them in a single set()
call. Both WorkerRunSimulator and ActivityFeed now delegate clearAll
to this atomic action instead of a forEach loop.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
… types

Add WorkersMonitor view with dual-pane layout (run list + detail panel),
including log streaming with auto-scroll, artifact inspection with graph
navigation, and pause/resume/stop run controls backed by new Zustand
actions. Introduce artifact materialization in finishRun — workers that
produce outputs (PRD, design, ADR, decomposition, pull_request, release,
deployment) now create a real StudioObject in the store with
createdObjectIds tracked on the run. Add six new ObjectTypeId values
(component, person, team, release, deployment, environment), LogEntry
type, and WorkerProfile 'analyzer'. Seed fourteen new MOCK_OBJECTS with
NODE_POSITIONS and five new WorkerDefs for the ops/deploy category.

Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
mock-data: add create_task_worker (applicableTypes: decomposition,
creates task artifact on completion) so decomposition objects have
an action button; add it to WORKER_ARTIFACT_TYPE map.

graph/ObjectGraph: split into ObjectGraphInner + ReactFlowProvider
wrapper so useReactFlow() is available; onNodeClick now calls
setCenter(nodeCenter, { duration: 400 }) to smoothly pan the
viewport to the clicked node after selecting it.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Add Chat | Config tab switcher in the bottom chat panel.

Config tab: model picker (Haiku/Sonnet/Opus with tier dots),
mode picker (Normal/Extended Thinking/Code Focus/Autonomous),
4-level reasoning effort selector (low/medium/high/max with
budget token hints and cost warning), context window selector
(8k/32k/200k/1M). Config summary badge row at the bottom.

Chat tab: current config params shown inline in header row
(model, mode, effort, context); status bar hint in input footer.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
…hierarchy

- Add WorkersCatalog view: searchable grid of workers grouped by category,
  with run button that calls runWorker and navigates to Monitor
- Rewrite WorkersMonitor with tree view: FlowRun roots with child WorkerRuns
  (indented), expand/collapse nodes, detail panel for both FlowRun and WorkerRun
- WorkerRun.parentRunId: new optional field linking runs to their parent FlowRun
  or WorkerRun; runFlow/startFlowGraph now spawn WorkerRuns with parentRunId set
- Store: add selectedMonitorRunId, setSelectedMonitorRun, navigateToMonitor;
  runWorker accepts optional options.parentRunId
- WorkerRunSimulator: clicking the toast header navigates to Monitor for that run
- Sidebar: add Catalog nav item (Library icon); Monitor item retains Activity icon
- App.tsx: route catalog view to WorkersCatalog
- domain.ts: add 'catalog' to AppView union

Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
Move all views into TopBar nav: added Monitor, Actions (catalog),
Workspaces to the top nav pill. Remove duplicate Quick nav section
from Sidebar — single navigation source. Rename Catalog→Actions
in nav label.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Replace 'Select an object first' text hint with an inline
ObjectPicker popover that lists all objects compatible with
the worker's applicableTypes. Search filter for long lists,
outside-click to dismiss. Button label: 'Run' when selected
object already matches, 'Run on…' + chevron otherwise.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
…ers, diagrams

New section covering how Studio natively supports the propose→validate→
evaluate→feedback→loop pattern (cf. Merouani et al. 2025, Agentic
Auto-Scheduling). Includes:
- LoopPolicy: convergence threshold, window, min/maxIterations, budget cap,
  onExhaustion ('accept_best' | 'abort' | 'escalate'), feedback context config
- LoopRun / IterationRun types with per-iteration score, improvement delta,
  cost, tokens, isBest flag
- 5-layer token budget enforcement stack (pre-loop → pre-iter → per-call →
  warning event → audit)
- Full sequenceDiagram showing orchestrator ↔ Proposer/Validator/Evaluator/
  Feedback/QuotaEnforcer/AuditLog
- StateDiagram for LoopRun state machine
- Monitor iteration-tree rendering example with cost + score columns
- Relationship table: §18 Validator Loop vs §27 Agentic Loop
- Example: code_quality_optimization_loop with 4-iteration convergence trace
- Designer guidance: onExhaustion, minIterations, historyWindow, windowSize

Signed-off-by: ainetx <viator@via-net.org>
Implements the Agentic Loop PoC for ui-1:
- LoopRun/IterationRun/LoopTerminationReason types in domain.ts; 'loop' added to AppView
- startAgenticLoop action in app-store: spawns 4 mock iterations over 12s with child WorkerRuns (proposer/validator/evaluator/feedback), tracks budgetConsumedPct and marks convergence
- Three new WorkerDefs: feedback_synthesizer_worker, code_quality_evaluator, agentic_code_optimization_loop
- AgenticLoopView: two-panel layout with loop list, score bar chart, collapsible iteration tree with child worker runs, budget progress bar, and convergence summary
- 'loop' view wired into App.tsx and TopBar.tsx (Loops tab with RefreshCw icon)

Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
Tab bar in BottomPanel: create tabs with + button (⌘T), close with X,
rename by double-click on tab title. Each tab renders a separate
ChatView instance (keyed by tabId) with fully isolated message
history, config, and state. Minimum 1 tab enforced (last tab
close button hidden). Tabs are scrollable when many.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
4 mock LoopRuns seeded in initial state (converged, budgetExhausted,
fast-converge, running-in-progress) showing different loop types and
objects. Auto-selects first loop on mount.

New Loop picker modal: 4 loop type options (Code Quality, Design
Conformance, Test Coverage, PRD Quality), each showing description,
step pipeline preview (Proposer→Validator→Evaluator→Feedback),
policy summary (maxIter/budget/threshold/metric), and a compatible
object list filtered by applicableTypes. Start button disabled until
object selected.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
domain-model.md §27.3: clarify Loop is not a separate entity — it is
a Flow with loopPolicy field set. Loop catalog = subset of Flow catalog
filtered on loopPolicy != null. Launching a loop = launching a Flow
with LoopPolicy configuration. Existing Flows can be promoted to loops
by adding loopPolicy in Kit definition.

types/domain.ts: add LoopPolicy interface; add loopPolicy?: LoopPolicy
to FlowDef so it is the single definition point.

mock-data.ts: add 4 iterative Flow definitions with loopPolicy attached
(code_quality_optimization_loop, design_conformance_loop,
test_coverage_improvement_loop, prd_quality_improvement_loop).

AgenticLoopView: picker now reads FLOW_DEFS filtered by loopPolicy
presence instead of hardcoded loop type list. LoopPolicy summary panel
shows threshold/maxIter/budget/metric/onExhaustion from the Flow's
loopPolicy field.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
mock-data: add 15 SDLC flows across creation, implementation, review,
bug-fix, and delivery categories (prd_creation, design_creation, adr,
feature_spec, implement_and_review, tdd, decompose_and_plan,
code_review, design_review, security_audit, incident_to_postmortem,
hotfix, release_candidate, staged_deployment, regression_test). Each
has entryConstraints mapping to relevant object types.

getFlowsForObject(): new helper filtering FLOW_DEFS by entryConstraints
typeId match (or no constraints = universal).

ActionsTab: three sections — Workers | Flows | Loops (iterative).
Flows show step breadcrumb (first 4 steps + count). Loops show
loopPolicy details (metric, maxIter, budget). Run Worker navigates
to Monitor; Launch Flow goes to Flows view; Run Loop goes to Loops.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Remove separate Loops tab from TopBar — loops are now accessed from
the Flows view, reflecting the architecture: Loop = Flow + LoopPolicy.

FlowsView: left sidebar split into Pipelines (FLOW_GRAPH_DEFS with
visual graph) and Iterative Loops (FLOW_DEFS filtered by loopPolicy).
Selecting a loop flow shows LoopFlowPanel instead of the graph:
- steps per iteration breadcrumb
- policy config (metric, threshold, maxIter, budget, onExhaustion)
- object picker filtered by entryConstraints
- Run as Loop button → startAgenticLoop → Monitor
- recent loop runs for this flow type

This matches the paper: the user launches a Flow in loop mode, not a
separate entity. Loop history visible in Monitor.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
FlowsView now reads FLOW_DEFS (all flows) instead of FLOW_GRAPH_DEFS
(only 3 with visual graphs). Sidebar groups flows by category:
Creation, Implementation, Review, Bug Fix, Delivery, Iterative.

FlowSidebarItem: compact item with 'graph' badge when visual graph
available. FlowStepListPanel: step-by-step timeline view with emoji
icons and type badges for flows without graph representation.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
…pass/fail

- domain-model.md §18.x: new Gate Modes section distinguishing binary gates
  (profile: validator, deterministic CI/schema/lint, pass|fail) from score gates
  (profile: analyzer, LLM review, 0.0–1.0 score + Finding[] list). Score gates
  carry convergence config (threshold, maxIterations, budgetUsd) replacing the
  separate LoopPolicy concept. Documents Finding type with severity/category/
  location/description/suggestedFix/resolved fields.

- domain.ts: add GateMode ('binary'|'score'), Finding interface, Evidence
  interface (gateMode, passed/errors for binary, score/findings/iterationIndex
  for score); add 'validator' to WorkerProfile union.

- mock-data.ts: deterministic workers (gap_analysis_validator, pr_design_validator,
  test_coverage_validator, security_scan_validator, bug_description_validator,
  confirm_test_fails/passes_validator, tech_lead_approval) set to profile
  'validator'; LLM review workers (traceability_analysis, security_impact_analysis,
  code_quality_evaluator, component_impact_analysis) set to profile 'analyzer';
  add design_review_analyzer and code_review_analyzer workers.

- FlowsView.tsx GateNodeComponent: detect score gates by workerId/label pattern
  (evaluator|analyzer|review), render indigo diamond border + 'score gate' badge
  at idle, score bar placeholder at passed state.

Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
…-list fallback

Add FlowGraphDef entries for all 15 non-loop flows (PRD creation, design
creation, ADR, feature spec, implement & review, TDD, decompose & plan,
code review, design review, security audit, incident postmortem, hotfix,
release candidate, staged deployment, regression testing). Each graph
uses a left-to-right layout with start/end nodes, worker/gate/human
nodes, pass/fail edges, retry loops back to the previous worker, and
escalation nodes on terminal failure paths.

Update GRAPH_MAP in FlowsView to cover all 18 regular flows. Remove
FlowStepListPanel entirely — the right panel now always renders the
ReactFlow graph for regular flows (or LoopFlowPanel for loop flows).
Remove the hasGraph indicator from FlowSidebarItem.

Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
FlowControlBar: fixed header above every flow graph showing flow name,
current status (Running/Paused/Completed/Failed/Aborted/Ready) + elapsed
time, and context-sensitive buttons:
  - idle/done/failed: [Run] or [Re-run]
  - running: [Pause] [Cancel]
  - paused: [Resume] [Cancel]
  - any active: [Clear] to dismiss exec state
  - waiting_input: [Cancel]

Store: add pauseFlowGraph (running→paused), resumeFlowGraph (paused→running),
cancelFlowGraph (→aborted, clears after 2s). FlowExecState.status
extended with 'paused' | 'aborted'.

FlowSidebarItem: shows coloured status dot next to flow label when that
flow has an active exec state (indigo=running, amber=paused, etc).

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
startFlowGraph fixes:
- resolveTargetObj(): use selectedObjectId first, fallback to objects[0]
- resolveWorker(): prefer node.workerId, then fuzzy label match; no
  more WORKER_DEFS[0] fallback that always launched wrong worker
- checkPause(): runStep polls flowExecState.status every 200ms when
  paused so Pause button actually halts execution; throws 'aborted'
  when cancelled so runStep chain terminates cleanly
- score gate branch (isScoreGate via /evaluator|analyzer|review/i):
  simulates improving score per retry, follows 'fail' edge back to
  proposer if improvement >= threshold, 'pass' edge when converged

FlowGraphNode: add optional workerId field so graph nodes can declare
which worker to launch instead of relying on label matching.

FlowExecState: extend status with 'paused' | 'aborted'.
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
…rative sidebar

- Add 4 new FlowGraphDefs (flows 19-22) for code-quality, design-conformance,
  test-coverage, and prd-quality refinement flows; each shows the proposer
  worker → score gate (evaluator/analyzer) → feedback worker → loop-back edge
  pattern so the iteration is visible as a plain graph
- Remove loopPolicy from all 4 FlowDefs — they are regular flows now
- Add 'Refinement' group to FLOW_GROUPS in the sidebar
- Update GRAPH_MAP with the 4 new flow→graph entries
- Delete LOOP_FLOWS const, LoopFlowPanel function, loopsExpanded state, and
  the "Iterative" sidebar section; the right panel only ever renders a graph
- Fix score-gate node IDs in existing flows 11-13: rename cr-gate-sec →
  cr-security-analyzer, cr-gate-trace → cr-traceability-analyzer,
  dr-gate-sec → dr-security-analyzer, sa-gate-impact → sa-security-analyzer,
  sa-gate-verify → sa-verify-analyzer so GateNodeComponent's
  /evaluator|analyzer|review/ regex renders them as indigo score gates
- Remove unused imports: IterationCcw, RotateCcw, X

Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
…rties, save

Adds a full-featured Flow Designer to the v2/poc/ui-1 PoC:

- New FlowDesigner component with three-panel layout: worker palette (left),
  ReactFlow canvas (centre), node properties panel (right, shown on selection)
- Worker palette groups WORKER_DEFS by category; items are draggable onto the
  canvas and drop as typed nodes (worker / gate based on profile)
- Custom DesignerNode renders start/end as circles, gates as rotated diamonds
  with dual handles, worker/human as bordered rectangles
- Custom DesignerEdge supports click-to-cycle edgeKind (default → pass → fail)
  with colour-coded inline label
- Properties panel: change node type, edit label, pick worker from filtered
  dropdown, set maxRetries for gate nodes, delete non-terminal nodes
- Save converts ReactFlow state to FlowGraphDef + FlowDef and persists via
  new store actions (addCustomFlow / updateCustomFlow / deleteCustomFlow)
- FlowsView: "+ New" button in sidebar header opens designer for a blank flow;
  pencil icon on hover of custom flow items opens designer for that flow;
  custom flows rendered in a dedicated "Custom" sidebar group; merged GRAPH_MAP
  includes custom graphs so saved flows render in the existing viewer

Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Signed-off-by: ainetx <viator@via-net.org>
…ctly

startFlowGraph: also looks in customFlowGraphDefs so user-created
flows can be executed via FlowControlBar Run button.

FlowDesigner: pass fitViewOnMount=true to CanvasInner when editing
an existing flow, so ReactFlow's built-in fitView prop fits viewport
to loaded nodes on mount. Remove duplicate useReactFlow/fitView call
outside ReactFlow context (would be no-op).

CanvasInner: accept fitViewOnMount prop, pass to ReactFlow; remove
duplicate bare 'fitView' attribute that caused TS17001. Fix drop
coordinates: screenToFlowPosition takes screen coords directly,
not viewport-relative coords.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Replace substring fuzzy matching with a 60-entry label→workerId map.
Root cause: 'create pr'.includes('create pr') was true for both
create_pr_worker AND create_prd_worker (substring match), so
create_prd_worker (first in WORKER_DEFS) was always picked.

New strategy: explicit label map checked first, then exact label
equality, never substring. Node labels from all 22 FLOW_GRAPH_DEFS
are covered: pr/prd/design/adr/spec/implement/decompose/gap/coverage/
test/security/traceability/approval/deploy/release/evaluator/feedback.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Workers with interaction (create_design_worker, decompose_feature_worker,
etc) showed awaiting_input and hung when spawned by startFlowGraph.

Fix: if options.parentRunId is set (flow-spawned), skip the interaction
pause and auto-complete via the normal completion path. Interaction modals
still appear when workers are run standalone from Actions tab.

Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
@sonarqubecloud

sonarqubecloud Bot commented Jul 8, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
6.5% Duplication on New Code (required ≤ 3%)
C Reliability Rating on New Code (required ≥ A)
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@ainetx ainetx closed this Jul 8, 2026
@ainetx
ainetx deleted the v2 branch July 8, 2026 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant