# Prometeu Studio

Prometeu Studio is the desktop development environment for the Prometeu toolchain.

This repository packages the Studio shell together with the embedded services it depends on: compiler pipeline integration, asset packing, runtime/debug orchestration, and project-local Studio state. The current implementation is a Java/JavaFX multi-module Gradle build.

## What Lives Here

The root project is a monorepo with these main areas:

- `prometeu-app`: JavaFX application entry point (`p.studio.App`).
- `prometeu-studio`: Studio UI, workspaces, project session lifecycle, play/stop flow, and debugger-facing surfaces.
- `prometeu-packer`: embedded packer APIs and implementation used by Studio.
- `prometeu-compiler`: compiler core, build pipeline, frontend APIs, and the PBS frontend.
- `prometeu-infra`: shared infrastructure used across modules.
- `docs/`: normative specifications and architectural references.
- `discussion/`: workflow artifacts for agendas, decisions, plans, and lessons.
- `test-projects/`: sample workspaces used for local development and tests.

## Current Product Shape

The Studio shell currently organizes the product around three workspaces:

- Assets
- Debug
- Shipper

At runtime, the app boots an embedded packer, restores project-local Studio state, and opens the Studio launcher window. Project creation currently scaffolds a Prometeu workspace with `prometeu.json`, `src/`, `assets/`, `build/`, `cartridge/`, `.workspace/`, and local Studio metadata.

## Requirements

- JDK 21 or newer recommended for local development
- Gradle wrapper (`./gradlew`) included in the repository
- A desktop environment capable of running JavaFX

## Common Commands

Run the full project graph listing:

```bash
./gradlew projects
```

Run the desktop application:

```bash
./gradlew :prometeu-app:run
```

Run the test suite:

```bash
./gradlew test
```

Generate the aggregated coverage report:

```bash
./gradlew jacocoTestReport
```

## Repository Reading Guide

If you are new to the codebase, this order is usually the fastest path:

1. Start at `prometeu-app` to see application bootstrap.
2. Read `prometeu-studio` for the shell, workspaces, and user-facing flows.
3. Read `prometeu-packer` for asset and packaging boundaries.
4. Read `prometeu-compiler` when you need compiler or PBS language behavior.

## Specs And Architecture

Important reference surfaces:

- `docs/specs/compiler/`: shared compiler specifications
- `docs/specs/packer/`: packer specifications
- `docs/vm-arch/`: VM and ISA architecture references

These documents are the long-term normative source for behavior and contracts. When code and docs diverge, fix the divergence explicitly instead of relying on tribal knowledge.

## Discussion Workflow

This repository uses a disciplined discussion workflow under `discussion/`:

- `discussion/workflow/agendas/`
- `discussion/workflow/decisions/`
- `discussion/workflow/plans/`
- `discussion/lessons/`
- `discussion/index.ndjson`

The expected execution flow is:

```text
agenda -> decision -> plan -> implement -> lesson
```

Do not create new workflow artifacts in legacy `docs/**/agendas`, `docs/**/decisions`, `docs/**/pull-requests`, or `docs/**/learn` paths.
