Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ or LPP, while `opy-rs` must remain independently usable as a library and CLI.
`opy-rs` owns:

- OverPy syntax, lexer, parser, source model, preprocessing, macros,
semantic resolution, diagnostics, provenance, and OPY HIR;
semantic resolution, diagnostics, source mapping, and OPY HIR;
- OverPy-specific compiler/lowering semantics and backend-affecting behavior;
- standalone OPY tooling APIs and CLI surfaces;
- Workshop → OPY reconstruction when implemented;
- OPY compatibility evidence and support claims.
- OPY compatibility tests and support claims.

`workshop-rs` owns:

Expand All @@ -38,7 +38,7 @@ into this repository. Never add a dependency from `workshop-rs` back to
The standalone source-analysis path must remain usable without requiring
Workshop emission. Compilation may depend on `workshop-rs`; `check`, semantic
inspection, source queries, and other Workshop-independent operations should
not be forced through the compiler pipeline without an evidence-backed need.
not be forced through the compiler pipeline without a concrete requirement.

Do not invent WrightKit-only OPY syntax. Compatibility is observable semantics,
not output-text identity, optimizer implementation, formatting, temporary
Expand All @@ -63,7 +63,7 @@ If the Issue, current contract, and source/tests disagree materially, stop and
surface the mismatch rather than selecting a design by implementation
convenience.

## Upstream reference and provenance
## Upstream reference and source attribution

For the declared OverPy core-language surface, the established upstream OverPy
implementation is the executable specification. Core behavior is presumptively
Expand All @@ -72,11 +72,11 @@ or demonstrated to be a non-contractual implementation artifact.

Inspect upstream implementation, docs, and tests to understand behavior; then
implement the behavior directly in clear Rust and verify it through
compatibility evidence. Do not mechanically translate, import, link, or bundle
compatibility tests and reference comparisons. Do not mechanically translate, import, link, or bundle
upstream implementation/data into the `opy-rs` core or release artifacts.

OverPy is GPL-3.0; this repository is AGPL-3.0-or-later. Pinned identity,
fixture/probe provenance, and licensing boundaries are documented in
fixture/probe attribution, and licensing boundaries are documented in
[`docs/compatibility/upstream-references.md`](docs/compatibility/upstream-references.md).

Inventories, manifests, probes, differential tests, corpus fixtures, and real
Expand All @@ -89,7 +89,7 @@ Prefer typed Rust for observable OverPy behavior and invariants: receiver/member
semantics, argument binding, contextual dispatch, macro/directive behavior,
coercion/evaluation rules, and special lowering.

Declarative data may carry large mechanical inventories, names, provenance, and
Declarative data may carry large mechanical inventories, names, source attribution, and
facts that do not themselves program language behavior. Do not extend an
existing manifest/registry with new semantic control fields merely because the
current implementation already contains similar metadata; existing
Expand All @@ -104,7 +104,7 @@ project exposes a blocker:
2. fix it here if the missing behavior is OverPy-owned;
3. route missing canonical Workshop behavior to `workshop-rs`;
4. preserve a minimized regression where practical while keeping the full
project evidence;
project test coverage;
5. do not split implementation work into smaller issues solely for bookkeeping
when one coherent change can be reviewed and validated safely.

Expand All @@ -122,8 +122,8 @@ cargo test --workspace --all-targets --all-features
python3 -m unittest discover -s tools/overpy/tests
```

Oracle-required compatibility probes run separately against the pinned
reference. A local test count is not sufficient evidence when a change claims
Oracle-required compatibility tests run separately against the pinned
reference. A local test count is not sufficient when a change claims
real-project compatibility; rerun the affected full-project workflow.

## Delivery
Expand All @@ -132,6 +132,6 @@ real-project compatibility; rerun the affected full-project workflow.
through PRs.
- Keep commits focused and issue-linked where an issue exists.
- Keep compatibility/support claims synchronized with actual implementation and
evidence.
tests.
- Never commit credentials, private runtime data, or unreviewed third-party
material.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ or as a Language Provider Protocol (LPP) process for extended linting, analysis,
and editor support.

`opy-rs` owns OverPy syntax, preprocessing, macros, semantic resolution,
compiler lowering, diagnostics, provenance, and source reconstruction. Shared
compiler lowering, diagnostics, source mapping, and source reconstruction. Shared
Workshop semantics, catalog identities, and emission remain delegated to
`workshop-rs`.

Expand Down Expand Up @@ -84,7 +84,7 @@ or upstream internal architecture. Optimizer behavior that materially changes
Workshop structure or element cost remains in scope; only incidental optimizer
shape is outside the target. Support claims are backed by the
canonical [language-support contract](docs/language-support.md), the corpus,
and pinned OverPy reference evidence.
and pinned OverPy reference results.

> [!IMPORTANT]
> `opy-rs` follows the OverPy language. It does not introduce a WrightKit-only
Expand Down Expand Up @@ -118,7 +118,7 @@ Python test suites.

## Documentation

Current architecture, compatibility evidence, APIs, HIR, provenance, and
Current architecture, compatibility tests, APIs, HIR, source mapping, and
maintainer references are indexed in [`docs/README.md`](docs/README.md).

## Contributing
Expand Down
2 changes: 1 addition & 1 deletion crates/opy-cli/src/bin/opy-compat.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//! Internal compatibility evidence producer.
//! Internal compatibility comparison producer.
//!
//! This target is built only by the compatibility gate. It is deliberately
//! separate from `opy-cli compile`: pinned oracle input must never become part
Expand Down
10 changes: 5 additions & 5 deletions crates/opy-rs/src/compiler/tests/resource_baseline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ struct InputIdentity {
sha256: String,
source: String,
parameters: JsonValue,
provenance: JsonValue,
attribution: JsonValue,
}

#[derive(Debug)]
Expand Down Expand Up @@ -356,7 +356,7 @@ fn synthetic_identity(id: &str, source: String, parameters: JsonValue) -> InputI
sha256: sha256(&source),
source: format!("compiler/tests/resource_baseline.rs::{id}"),
parameters,
provenance: serde_json::json!({
attribution: serde_json::json!({
"kind": "original",
"origin": "WrightKit opy-rs resource audit workload",
"license": "AGPL-3.0-or-later",
Expand All @@ -376,9 +376,9 @@ fn real_world_workload() -> Workload {
.expect("parabola metadata is valid JSON");
Workload {
id: "real-world-parabola",
description: "provenance-linked OverPy parabola example compiled end to end",
description: "attributed OverPy parabola example compiled end to end",
input: InputIdentity {
kind: "provenance-linked-corpus".to_string(),
kind: "attributed-corpus".to_string(),
bytes: source.len(),
sha256: sha256(&source),
source: format!("{REAL_FIXTURE}/parabola.opy"),
Expand All @@ -389,7 +389,7 @@ fn real_world_workload() -> Workload {
),
"entry": "parabola.opy"
}),
provenance: metadata["provenance"].clone(),
attribution: metadata["attribution"].clone(),
},
run: run_real_world,
}
Expand Down
Loading
Loading