Files
ARCADIA-Studio/harness/issue28-s1-s7-independent-review-20260923.md

8.2 KiB
Raw Permalink Blame History

Issue 28 S1/S7 independent review

2026-09-23 — fresh Astra critic, delegated by Codex-956atf. Local-only review artifact; parent owns synthesis and publication.

Disposition: accept the assessment as a source-grounded gap analysis and a useful proposal for the next experiment. Do not yet accept its six fixtures as a complete mapping-selection gate. No material factual contradiction was found in the inspected core claims. Address the three fixture/comparison gaps below before selecting a semantic foundation. They do not require adopting a metamodel now.

Scope and evidence

  • Reviewed .local/issue28-s1-s7-assessment-956atf-20260922.md, SHA-256 4c1a425f65bfd4463fcfe882c0ced8bf3a3b2bd06b00b1ca8e52b9626ad9512f; user report SHA-256 1eee1c75cde0e646c75e76015f476193e92e25b22f2d5b552ec16e7152c95f48; PROJECT_GOAL.md and root AGENTS.md.
  • Independently verified clean root at 4ffff0d9d94bd1875e6b316b84ac11e5c5c9657c (R), and clean .local/ai3 at 1b1c3e3abb6fc3d0934c9dbfbd21fddc8ae4f594 (A). All code references below refer to these pins, not an assumed current remote head.
  • Parent separately reported actual remote default main at 5ae9137276d3287d859264da920fecac794fa646, with its AGENTS blob equal to local (767be18f086c04b7a688b107808e97ac98881356). This is parent-supplied freshness evidence. Cached origin/HEAD is stale and was not used as instruction authority.
  • Read-only source/web review only. No compiler, tests, GUI, production edits, Gitea writes, or architecture adoption. Historical test totals/publication status were not independently audited; the separate S3 evidence task owns its artifacts.

Findings to address before the selection experiment

  1. P2 — combine local default override with a later shared revision. Fixtures 2 and 3 separately test shared propagation and overriding a default, but do not test their interaction (assessment lines 43–45). A representation that remembers current values while dropping whether a value was inherited or explicitly chosen can pass the separate numerical checks and later overwrite an engineer's local choice. Extend fixture 3 with three usages of one defaulted definition: U inherits 0.2 ohm, V explicitly binds 0.3 ohm, and W explicitly binds 0.2 ohm. Revise the definition default to 0.25 ohm. Require U=0.25, V=0.3, W=0.2; after removing W's local binding require W=0.25. Repeat after save/reopen and rename, preserving correspondence and binding provenance. Include the inherited calculation/constraint correspondence in the structural oracle, rather than accepting only matching values. This is grounded in the report's S1 shared-update/local-choice requirement and the distinction between defaults and explicit values in SysML 2.0 §7.13.1 and §7.13.4, printed pages 64–65 and 72–73. It is a proposed strengthening, not an observed implementation defect.

  2. P2 — define a fully known infeasible result separately from incomplete evidence. Fixture 5 covers missing endurance and ties, while fixture 4 always has feasible alternatives (assessment lines 47–49). Add a fresh baseline study with threshold 100 min: all three candidates have known inputs, the feasible set is empty, no selected candidate exists, and the outcome must explicitly communicate infeasibility rather than missing data or numerical failure. Also define whether an empty supplied candidate collection is an admission error or a separate study outcome. This affects the proposed standard-library mapping: the pinned TradeStudies library requires a nonempty study-alternative collection and derives one selected alternative. Passing an empty filtered collection into that contract is therefore not a complete mapping. Specify the surrounding result/status contract explicitly, without pretending that policy is supplied by the library. Make fixtures 4–6 start from named baseline snapshots so D's addition or C's missing endurance cannot accidentally carry into fixture 6.

  3. P2 — make the proposed comparison operational before ranking candidates. The decision paragraph names editing/cognitive load and migration costs but provides no observable workflow or acceptance rubric (assessment line 63). PROJECT_GOAL.md:64–71 explicitly requires graph/text parity, human/AI and Git editability, and programmatic model access; :94–100 requires reduced cognitive load. For each candidate mapping, require a concrete path for the same shared-definition change, local override/removal, and study rerun through text, graphical editing, and API; compare resulting semantic identities, effective bindings, diagnostics, and persisted evidence. Prototype execution can be staged, but mark unimplemented paths as unverified rather than passing the comparison. Add a small diff/reopen/rename check and record manual edits and unresolved inconsistencies for the same engineer task, following the user report's proposed validation sequence step 5. Treat lossless semantic distinctions as hard gates and workflow effort as measured evidence, rather than allowing a vague score to trade away required meaning. These S1/S7 gates also cannot establish preservation of the report's independently owned C1–C6 architectural distinctions; link those reviews before a foundation decision.

Claims accepted within scope

  • A's crates/oa-core/src/analysis/types.rs:38–97 contains quantity-kind, unit and pure calculation definitions and scalar/list analysis types, with Binding limited to Unbound or Expression. There is no assembly specialization or fixed/default discriminator in those types. A:crates/oa-core/src/model.rs:667–682 has property bindings, case overlays and checks, with no typed trade-study candidate/result record. This supports the assessment's bounded absence claims.
  • A:crates/oa-core/src/analysis/resolve.rs:94–149 resolves by global property ID and optional same-layer case override; analysis/admission.rs:560–599 checks override targets/layers, not a case-subject subtree. The assessment correctly rejects an inference from optional case subject to contextual assembly scope.
  • A:crates/oa-core/src/analysis.rs:1 states static admission only; analysis/tests.rs:742–775 admits a false predicate and a well-typed zero division while testing numerical errors separately. Formula representation/numeric helpers therefore cannot substantiate model-level computed results. The numerical fixture oracles (20/45/65 W and 25/56.25/81.25 W) are arithmetically consistent; they remain unexecuted model oracles.
  • R:docs/language.rst:966–987,1014–1017 explicitly limits object literals/redefinition while retaining same-family inheritance and original inherited field identities. The assessment correctly acknowledges useful existing reuse rather than calling it nonexistent.
  • The fixed-binding/default/initial distinctions match the inspected normative text. The assessment appropriately avoids claiming that an editor or optimizer implements every language mechanism. Its tie/missing-data choices are clearly labeled proposals.
  • Independent read-only Git comparison found no file delta from f1d79df4979121335ed7b4ce4da84b2fca8a9ef4 to A within crates/oa-core/src/analysis or crates/oa-core/src/analysis_numeric. This supports reusing unchanged-source evidence narrowly; it does not validate the whole application or execute the proposed fixtures.

One representation-neutral clarification: “distinct local-feature/usage identities” in fixture 2 should allow a stable contextual identity such as usage identity plus defining-feature identity. Do not require a physically duplicated field record or fresh persisted UUID for every inherited feature merely to satisfy the oracle. Require distinguishable context, exact source correspondence, and stable references; let the candidate mapping demonstrate its mechanism.

The useful next outcome is two concrete representational mappings with explicit losses, policy/status contracts, and these strengthened oracles. This review does not authorize narrowing the application's broader requirements to the current analysis substrate or treating unexecuted proposals as delivered functionality.