This repository is an implementation of OpenAI Symphony as described in docs/symphony-spec.md.
The upstream specification is the source reference for architecture, layering, orchestration behavior, runtime behavior, workflow loading, workspace lifecycle, tracker integration boundaries, and observability expectations.
Before writing or changing any spec, design, or implementation artifact, the agent MUST identify:
- Which Symphony spec layer the work belongs to.
- Whether the work affects one layer only or crosses multiple layers.
Use the layer model from the Symphony spec:
- Policy Layer
- Configuration Layer
- Coordination Layer
- Execution Layer
- Integration Layer
- Observability Layer
When starting work, explicitly classify the task against one or more of these layers.
After completing any spec or implementation task, the agent MUST verify:
- Whether the resulting design or code still conforms to docs/symphony-spec.md.
- Whether any part of the work intentionally diverges from the upstream spec.
- Write TCs and run tests: After completing work, write simple test cases and run the tests to verify. Unit tests (
pnpm test) are mandatory; when integration behavior needs verification, run black-box tests in the Docker E2E environment. See AGENT_TEST.md for the concrete testing procedure. - Update living documents: When behavior, the CLI surface, or the package structure changes, update the related living documents in the same change — user-facing commands and usage in
README.mdandpackages/cli/README.md, layer/package mapping in the matching slice ofdocs/architecture.md, configuration and environment variables indocs/configuration.md, and new E2E scenarios in the scenario table ofAGENT_TEST.md. Document placement follows docs/README.md.
If a divergence exists:
- The divergence must be called out explicitly in the relevant change proposal, design, task, or implementation notes.
- The divergence must be treated as a repository-level implementation choice, not as an implicit rewrite of the upstream spec.
- The divergence must not be hidden behind ambiguous wording.
The file docs/symphony-spec.md is the upstream source specification.
Agents MUST NOT edit, rewrite, patch, or reformat that file as part of normal spec work or implementation work.
If a proposed design appears to conflict with the upstream spec:
- Do not modify the upstream spec file.
- Keep the divergence in repository-local design/change documents instead.
- Make the divergence explicit and reviewable.
When proposing or implementing changes:
- Prefer aligning the repository to the upstream Symphony spec rather than redefining core behavior locally.
- Keep tracker-specific behavior out of core layers unless the upstream spec clearly allows that boundary.
- Keep workflow-policy behavior separate from orchestration-core behavior.
- Treat GitHub-specific semantics as repository extensions layered on top of Symphony core behavior.
These rules apply to:
- OpenSpec proposals, designs, tasks, and capability specs
- package structure changes
- runtime/orchestrator/tracker integration work
- workflow/config changes
- implementation and refactoring work