Metadata-Version: 2.4
Name: zeon-project-scaffold
Version: 0.3.1rc2
Summary: Canonical Zeon project layout — shared by CLI `zeon init` and sync-service POST /projects.
Author-email: Zeon Team <team@zeonsystems.app>
License-Expression: MIT
Project-URL: Homepage, https://zeonsystems.app
Project-URL: Repository, https://github.com/ZeonSystems/everything-prototype-containers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# Zeon Project Scaffold

Canonical project layout and templates for Zeon projects.

## Installation

```bash
pip install zeon-project-scaffold
```

## Usage

This library is primarily used by the `zeon` CLI and the Zeon Sync service to ensure consistent project structures.

The default project template reaches users through the sync service (`POST /sync/projects` seeds the initial
commit from `iter_default_project_files()`; `zeon new project` asks the server for that seed), so a template change
ships with a sync service image built from this checkout. The CLI uses only the typed item templates.

## Changes

### Unreleased

- `move_plate` defaults to `slot_1` (the shaker seat the right arm reaches on this deck). On staging a `zeon run`
  without `-i` ran the skill defaults (graph execution did not apply the workflow's input defaults then) and sent
  the plate to `slot_3`, out of reach (2026-11-03). Graph execution now fills a run's missing inputs from the
  workflow's declared defaults (execution `graph_execution/router.py` `with_input_defaults`).
- The workflow declares `stand_anchor` (default `top_center`) beside its other inputs, so every node parameter is an
  input the app and `zeon run -i` can change.
- The agent guide: inputs default to the workflow's declared defaults, `-i` overrides.

### 0.3.1rc1 (released from td/repl-gate b275ec95)

- The default template is the plate-through-shaker starter instead of the pipette demo: world `shaker_deck` on
  `zeon_science_setup` (tables, two well-plate stands, a 96-well plate on stand 1, the plate shaker on the back
  table), skills `move_plate` (right arm) and `shaker_lid` (left arm), workflow `plate_through_shaker`, viewer
  presets, and 3 objects (`wellplate_stand`, `wellplate_96_flatbottom`, `wellplate_shaker` with plate seats
  `slot_1`..`slot_4` and a `lid_grip` anchor). No canvas, no `repl_init.py`, no `live_state.yaml`.
- The template ships the coding-agent guide as `CLAUDE.md` and `AGENTS.md` (one text): the edit / push / up / run /
  pull loop and "moving things nicely" with skill API v2. The CLI writes its own guide only when a project has none.
- The objects' meshes come from the mesh catalog by type (the project ships URDF + YAML only): each catalog item
  must be visible to customer orgs (public), or the object silently drops out of the world (`wellplate_shaker` was
  private on staging until 2026-11-03; production needs the same check before a stable release).

### 0.4.0rc1

- Skill API v2 skills, world-owned tables, REPL hooks (the pipette demo).
