Skip to content
PlystraCore

Principles

Compose first. Replace cleanly. Keep only what differs. Built for agents.

  1. Agent-first, the same for people

    Built for coding agents first: structured results, typed recovery, a small context. People use the same CLI and files, with the same results.

  2. Replaceable, not just extensible

    Your application depends on capabilities, never on a particular implementation. Every default can be swapped out cleanly.

  3. Customization is ordinary Go

    A replacement is a Go package with a constructor. No plugin API, base class or registration to learn.

  4. Zero lines to a working backend

    The goal: a production backend composed entirely from dependencies, before you write any code.

  5. Your repository holds only what differs

    Generic capabilities stay in dependencies and composition. Nothing is copied into your repository by a scaffold.

How the design keeps those promises

  1. 01

    Agent-first, developer-unified

    Built first for Agents, with one interface for everyone. Behavior never depends on who calls.

  2. 02

    Human-observable

    Every decision can be recovered from Go, YAML, generated files and Git diffs.

  3. 03

    Structured facts first

    Machine-readable results come first; human output is a view of the same facts.

  4. 04

    Authority comes from intent

    Being an Agent grants nothing. Comments and logs are content, not instructions.

  5. 05

    Minimal cognitive load

    Start with Go, a plystra.yaml and one Interface. Learn the rest when it is needed.

  6. 06

    No complexity cliff

    Small and large Projects use the same model, all the way up.

  7. 07

    Ordinary Go first

    Packages, constructors and method calls. An abstraction only where Go cannot do the job.

  8. 08

    Static and deterministic assembly

    One finite pipeline. After Freeze, nothing can change the graph.

  9. 09

    Explicit control flow

    Generated proxies govern calls but never hide what happens next.

  10. 10

    Automate aggressively, explain everything

    The CLI derives what it can, and every result has a stable explanation.

  11. 11

    No abstraction without demonstrated pressure

    Nothing speculative. New concepts must prove repeated, concrete need.

Intent by default. Mechanism when asked.

  1. Default› intent

    Projects and Interfaces, in the language of the task.

  2. Advanced›› mechanism

    Implementation selection, constructor dependencies, configuration provenance, transport mapping, compatibility.

  3. Maintainer››› implementation

    Kernel internals, generated schemas, release evidence, toolchain identity.

What Core leaves out

  • a second runtime or remote dispatch fabric
  • replacing an Implementation after startup
  • a manifest-backed code container
  • third-party generation hooks
  • executing dependencies from declarative graphs
  • implicit alternate names or login Interfaces
  • different behavior for humans and Agents
  • a per-field environment-variable override language
  • several active environment profiles