Skip to content

Canonicalize the Jazz repository root - #124

Merged
Un3qual merged 10 commits into
mainfrom
codex/repository-canonicalization
Aug 3, 2026
Merged

Canonicalize the Jazz repository root#124
Un3qual merged 10 commits into
mainfrom
codex/repository-canonicalization

Conversation

@Un3qual

@Un3qual Un3qual commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Summary

Canonicalizes Jazz around the active compiler and removes obsolete repository structure.

  • removes the archived jazz-hs/ and jazz2/ legacy implementations
  • promotes the active compiler from jazz-next/ into the repository root
  • renames package, executable, benchmark, generated module, Haskell namespaces, and repository paths from JazzNext/jazz-next to Jazz/jazz
  • repairs active documentation, root discovery, Nix, ignore rules, and repository audits for the canonical layout

Compiler semantics are unchanged. This is a structural and identity migration with regression coverage and both ordinary and extended behavioral-equivalence verification.

Recovery point

The complete pre-migration repository is preserved by the annotated tag:

archive/pre-root-canonicalization-2026-07-31

The tag peels locally and remotely to 1df2c5bd2524cdd52bd18e989967373e255f80d3.

Validation

Ordinary gate

  • clean warning-enabled cabal build all: passed
  • serial ordinary aggregate: all 65/65 default Cabal test suites passed
  • cabal run jazz -- --help: passed with the canonical CLI identity
  • cabal check: passed with no warnings or errors
  • root documentation, spec-authority, clarification, execution-queue, and queue-regression validators: passed
  • nix flake check: passed, including checks.aarch64-darwin.jazz-test-suite
  • git diff --check: passed

One-time extended migration gate

These checks were run once for this migration and are intentionally not added to routine CI:

  • full parser-scale aggregate with +full-parser-scale: passed, including all four exhaustive components
  • stage-boundary profiling build: passed
  • hotspot profiling build: passed
  • bounded five-case cabal bench jazz-bench --benchmark-options='--jazz-smoke': passed
  • benchmark timing was advisory only; no percentage or historical performance threshold was enforced
  • no benchmark or profiling artifacts entered the tracked tree

Known pre-existing verification concerns

  • The whole-tree check with flake-pinned Ormolu 0.8.0.2 reports broad formatting drift that also reproduces against the archived pre-migration source. This PR does not introduce or expand an unrelated repository-wide reformat.
  • The default-parallel ordinary aggregate can intermittently trip the lexer parity suite's fixed wall-clock stress budget under load. The unchanged serial aggregate passes all 65 suites, and the parallel full-scale aggregate also passed. Investigation found no deterministic compiler defect or shared writable-resource collision.

Stack

This draft PR is intentionally stacked on #123 (codex/repository-productization-design). Review the design base first; after it lands, this PR can be retargeted to main without changing its commits.

Superseded instructions PR

PR #9 contains old-layout Copilot instructions referencing jazz-hs/, jazz2/, jazz-next/, and JazzNext.*. It is superseded by this canonical layout and should be closed separately by a maintainer rather than merged.


Summary by cubic

Canonicalizes the repository on the active compiler by promoting jazz-next to the root jazz package and deleting legacy implementations. No semantic changes; paths, namespaces, and docs now use the canonical layout.

  • Refactors

    • Removed jazz-hs/ and jazz2/; active code now lives in src/, jazz/, app/, and test/.
    • Renamed package and modules: jazz-nextjazz, JazzNext.*Jazz.*, Paths_jazz_nextPaths_jazz.
    • Updated entry points and benchmarks to import Jazz.* (e.g., app/Main.hs, benchmark/*).
    • Build tooling: cabal.project* now targets package jazz; flake.nix builds jazz from a tight fileset, packages repository audit inputs, and exposes checks.jazz-test-suite.
    • Repo hygiene: root dist-newstyle//benchmark-results//profile-results/ in .gitignore; added website/ ignores; VS Code extension now under editors/vscode-jazz/.
    • Docs and scripts now reference root paths and fence legacy references to the archive tag archive/pre-root-canonicalization-2026-07-31.
  • Migration

    • Update local scripts from jazz-next/... to root paths (src/, jazz/, app/, test/).
    • Build/test: cabal build all and cabal test all --test-show-details=failures (run from repo root).
    • Nix: run from repo root; CI/check name is checks.jazz-test-suite.
    • Haskell code should use Jazz.* modules and Paths_jazz.
    • The full pre-migration tree is preserved at tag archive/pre-root-canonicalization-2026-07-31.

Written for commit e24f999. Summary will update on new commits.

Review in cubic

@greptile-apps

greptile-apps Bot commented Aug 1, 2026

Copy link
Copy Markdown

Too many files changed for review. (753 files found, 500 file limit)

@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 751 files, which is 651 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 9789d9ee-04b6-4827-ad76-adb6be279cd6

📥 Commits

Reviewing files that changed from the base of the PR and between 8e16565 and e24f999.

⛔ Files ignored due to path filters (2)
  • jazz-hs/stack.yaml.lock is excluded by !**/*.lock
  • jazz2/stack.yaml.lock is excluded by !**/*.lock
📒 Files selected for processing (751)
  • .gitignore
  • AGENTS.md
  • PERFORMANCE.md
  • README.md
  • app/Main.hs
  • benchmark/Jazz/Benchmark/Force.hs
  • benchmark/Jazz/Benchmark/Metadata.hs
  • benchmark/Jazz/Benchmark/StageInputs.hs
  • benchmark/Jazz/Benchmark/Stages.hs
  • benchmark/Main.hs
  • cabal.project
  • cabal.project.profile-hotspots
  • cabal.project.profile-stages
  • docs/compiler/architecture.md
  • docs/execution/README.md
  • docs/execution/blocker-contracts.md
  • docs/execution/prompts/autonomous-next-batch.md
  • docs/execution/prompts/curated-next-batch.md
  • docs/execution/queue.md
  • docs/feature-status.md
  • docs/jazz-improvement-backlog.md
  • docs/jazz-language-state.md
  • docs/spec/abstractions/capability-model.md
  • docs/spec/abstractions/trait-vocabulary.md
  • docs/spec/adt-pattern-semantics.md
  • docs/spec/authoritative-syntax.md
  • docs/spec/control-flow/if-expressions.md
  • docs/spec/governance/spec-authority-policy.md
  • docs/spec/modules/00-module-clarification-matrix.md
  • docs/spec/modules/01-file-layout-and-package-roots.md
  • docs/spec/modules/02-resolution-algorithm-and-cycles.md
  • docs/spec/modules/03-loader-behavior-and-diagnostics.md
  • docs/spec/modules/04-qualified-imports-and-binding.md
  • docs/spec/modules/05-migration-and-compatibility.md
  • docs/spec/pattern-matching-semantics.md
  • docs/spec/runtime/primitive-semantics.md
  • docs/spec/runtime/text-character-semantics.md
  • docs/spec/semantics/bindings-and-signatures.md
  • docs/spec/semantics/purity-bang-stub-v1.md
  • docs/spec/stdlib-boundary.md
  • docs/spec/syntax/operators.md
  • docs/spec/tooling/cli-source-input.md
  • docs/spec/tooling/compiler-warning-flags.md
  • editors/vscode-jazz/README.md
  • editors/vscode-jazz/fixtures/representative.jz
  • editors/vscode-jazz/fixtures/reserved-keyword-highlighting.jz.txt
  • editors/vscode-jazz/language-configuration.json
  • editors/vscode-jazz/package.json
  • editors/vscode-jazz/syntaxes/jazz.tmLanguage.json
  • flake.nix
  • jazz-hs/.gitignore
  • jazz-hs/CHANGELOG.md
  • jazz-hs/ExamplePrograms/ComplexProgram.jz
  • jazz-hs/ExamplePrograms/LongProgram.jz
  • jazz-hs/ExamplePrograms/MediumProgram.jz
  • jazz-hs/ExamplePrograms/MismatchedParens.jz
  • jazz-hs/ExamplePrograms/NotInScopeError.jz
  • jazz-hs/ExamplePrograms/ParseError.jz
  • jazz-hs/ExamplePrograms/TraitTypeError.jz
  • jazz-hs/ExamplePrograms/TypeError.jz
  • jazz-hs/LICENSE
  • jazz-hs/README.md
  • jazz-hs/Setup.hs
  • jazz-hs/app/Main.hs
  • jazz-hs/jazz.cabal
  • jazz-hs/local-deps/llvm-hs-pretty/.gitignore
  • jazz-hs/local-deps/llvm-hs-pretty/.travis.yml
  • jazz-hs/local-deps/llvm-hs-pretty/ChangeLog.md
  • jazz-hs/local-deps/llvm-hs-pretty/Example.hs
  • jazz-hs/local-deps/llvm-hs-pretty/LICENSE
  • jazz-hs/local-deps/llvm-hs-pretty/README.md
  • jazz-hs/local-deps/llvm-hs-pretty/default.nix
  • jazz-hs/local-deps/llvm-hs-pretty/llvm-hs-pretty.cabal
  • jazz-hs/local-deps/llvm-hs-pretty/shell.nix
  • jazz-hs/local-deps/llvm-hs-pretty/src/LLVM.hs
  • jazz-hs/local-deps/llvm-hs-pretty/src/LLVM/Pretty.hs
  • jazz-hs/local-deps/llvm-hs-pretty/src/LLVM/Pretty/Typed.hs
  • jazz-hs/local-deps/llvm-hs-pretty/stack.yaml
  • jazz-hs/local-deps/llvm-hs-pretty/tests/Main.hs
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/alias.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/asm.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/cast.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/clang.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/comparison.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/const.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/datalayout.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_array.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_dimodule.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_enum.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_global.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_macro.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_namespace.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_objcproperty.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_qualifiers.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_templateparameter.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_tu_composite.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/debug_metadata_union.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/empty.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/eval.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/expr_aggregate.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/expr_binary.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/expr_bitwise.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/expr_conversion.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/expr_memory.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/expr_other.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/expr_vector.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/float.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/for.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/full.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/func.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/getelementptr.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/global.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/hello.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/if.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/inst_aggregate.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/inst_binary.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/inst_bitwise.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/inst_conversion.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/inst_memory.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/inst_other.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/inst_vector.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/intrinsic.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/loop.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/loopnest.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/metadata.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/module.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/multiple.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/names.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/packed.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/pair.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/phi.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/prefix.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/printf.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/rand.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/range.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/record.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/saxpy.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/simple.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/tensorflow_blocks.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/tensorflow_funcs.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/tensorflow_kernel.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/tensorflow_types.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/term.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/type.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/input/while.ll
  • jazz-hs/local-deps/llvm-hs-pretty/tests/output/.gitkeep
  • jazz-hs/local-deps/llvm-hs-pure/CHANGELOG.md
  • jazz-hs/local-deps/llvm-hs-pure/LICENSE
  • jazz-hs/local-deps/llvm-hs-pure/Setup.hs
  • jazz-hs/local-deps/llvm-hs-pure/default.nix
  • jazz-hs/local-deps/llvm-hs-pure/llvm-hs-pure.cabal
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/AddrSpace.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Attribute.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/COMDAT.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/CallingConvention.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Constant.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/DLL.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/DataLayout.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Float.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/FloatingPointPredicate.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/FunctionAttribute.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Global.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/InlineAssembly.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Instruction.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/IntegerPredicate.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Linkage.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Name.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Operand.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/ParameterAttribute.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/RMWOperation.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/ThreadLocalStorage.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Type.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Typed.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/AST/Visibility.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/DataLayout.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/IRBuilder.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/IRBuilder/Constant.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/IRBuilder/Instruction.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/IRBuilder/Internal/SnocList.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/IRBuilder/Module.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/IRBuilder/Monad.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/Prelude.hs
  • jazz-hs/local-deps/llvm-hs-pure/src/LLVM/Triple.hs
  • jazz-hs/local-deps/llvm-hs-pure/test.prof
  • jazz-hs/local-deps/llvm-hs-pure/test/LLVM/Test/DataLayout.hs
  • jazz-hs/local-deps/llvm-hs-pure/test/LLVM/Test/IRBuilder.hs
  • jazz-hs/local-deps/llvm-hs-pure/test/LLVM/Test/Tests.hs
  • jazz-hs/local-deps/llvm-hs-pure/test/Test.hs
  • jazz-hs/local-deps/llvm-hs/CHANGELOG.md
  • jazz-hs/local-deps/llvm-hs/LICENSE
  • jazz-hs/local-deps/llvm-hs/Setup.hs
  • jazz-hs/local-deps/llvm-hs/llvm-hs.cabal
  • jazz-hs/local-deps/llvm-hs/src/Control/Monad/AnyCont.hs
  • jazz-hs/local-deps/llvm-hs/src/Control/Monad/AnyCont/Class.hs
  • jazz-hs/local-deps/llvm-hs/src/Control/Monad/Trans/AnyCont.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Analysis.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/CodeGenOpt.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/CodeModel.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/CommandLine.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Context.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Diagnostic.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Exception.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/ExecutionEngine.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Analysis.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Atomicity.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Attribute.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/BasicBlock.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/CallingConvention.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Coding.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/CommandLine.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Constant.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Context.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/DataLayout.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/DecodeAST.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Diagnostic.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/EncodeAST.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/ExecutionEngine.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Analysis.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Analysis.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Assembly.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/AssemblyC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Attribute.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Attribute.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/AttributeC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/AttributeC.hpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/BasicBlock.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/BinaryOperator.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Bitcode.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/BitcodeC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Builder.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/BuilderC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ByteRangeCallback.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/CallingConvention.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/CallingConventionC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Cleanup.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/CommandLine.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/CommandLineC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Constant.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Constant.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ConstantC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Context.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ContextC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/DataLayout.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/DynamicLibrary.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Error.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ErrorHandling.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ErrorHandling.hpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ExecutionEngine.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ExecutionEngineC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Function.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/FunctionC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/GlobalAlias.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/GlobalAliasC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/GlobalValue.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/GlobalValue.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/GlobalValueC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/GlobalVariable.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/InlineAssembly.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/InlineAssembly.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/InlineAssemblyC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Instruction.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Instruction.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/InstructionC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/InstructionDefs.hsc
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Iterate.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/LLVMCTypes.hsc
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/LibFunc.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/LibFunc.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/MemoryBuffer.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Metadata.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Metadata.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/MetadataC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Module.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ModuleC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ObjectFile.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/OrcJIT.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/OrcJIT.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/OrcJITC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Passes.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/PassesC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/PtrHierarchy.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/RTDyldMemoryManager.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/RTDyldMemoryManager.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/RawOStream.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/RawOStreamC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/SMDiagnostic.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/SMDiagnostic.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/SMDiagnosticC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ShortByteString.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Target.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Target.hpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Target.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/TargetC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Threading.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Type.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Type.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/TypeC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/User.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Value.h
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/Value.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FFI/ValueC.cpp
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FastMathFlags.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/FloatingPointPredicate.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Function.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Global.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/InlineAssembly.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Instruction.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/InstructionDefs.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/IntegerPredicate.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/LibraryFunction.hsc
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Linking.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/MemoryBuffer.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Metadata.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Module.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/ObjectFile.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Operand.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/OrcJIT.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Passes.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/RMWOperation.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/RawOStream.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/String.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/TailCallKind.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Target.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Threading.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Type.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Internal/Value.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Linking.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Module.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/OrcJIT.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Passes.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Relocation.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Target.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Target/LibraryFunction.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Target/Options.hs
  • jazz-hs/local-deps/llvm-hs/src/LLVM/Threading.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Analysis.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Attribute.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/CallingConvention.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Constants.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/DataLayout.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/ExecutionEngine.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/FunctionAttribute.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Global.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/InlineAssembly.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Instructions.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Instrumentation.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Linking.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Metadata.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Module.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/ObjectCode.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Optimization.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/OrcJIT.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/ParameterAttribute.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Regression.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Support.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Target.hs
  • jazz-hs/local-deps/llvm-hs/test/LLVM/Test/Tests.hs
  • jazz-hs/local-deps/llvm-hs/test/Test.hs
  • jazz-hs/local-deps/llvm-hs/test/debug_metadata_1.ll
  • jazz-hs/local-deps/llvm-hs/test/debug_metadata_2.ll
  • jazz-hs/local-deps/llvm-hs/test/debug_metadata_3.ll
  • jazz-hs/local-deps/llvm-hs/test/debug_metadata_4.ll
  • jazz-hs/local-deps/llvm-hs/test/debug_metadata_5.ll
  • jazz-hs/local-deps/llvm-hs/test/fneg_test.ll
  • jazz-hs/local-deps/llvm-hs/test/main_return_38.c
  • jazz-hs/package.yaml
  • jazz-hs/run.sh
  • jazz-hs/src/AST.hs
  • jazz-hs/src/Analyzer.hs
  • jazz-hs/src/Analyzer/ScopeAnalyzer.hs
  • jazz-hs/src/Analyzer/TypeInference.hs
  • jazz-hs/src/CodeGen/Builtins.hs
  • jazz-hs/src/CodeGen/Javascript.hs
  • jazz-hs/src/Error/Diagnose/Compat/Hints.hs
  • jazz-hs/src/Error/Diagnose/Compat/Megaparsec.hs
  • jazz-hs/src/Errors.hs
  • jazz-hs/src/Interpreter.hs
  • jazz-hs/src/Lib.hs
  • jazz-hs/src/Optimizer.hs
  • jazz-hs/src/Optimizer/ConstantFolding.hs
  • jazz-hs/src/Parser.hs
  • jazz-hs/src/Parser/Lang.hs
  • jazz-hs/src/Parser/Lib.hs
  • jazz-hs/src/Parser/Literal.hs
  • jazz-hs/src/Parser/Operator.hs
  • jazz-hs/src/Types.hs
  • jazz-hs/stack.yaml
  • jazz-hs/static/Prelude.jz
  • jazz-hs/static/runtime.c
  • jazz-hs/test/Analyzer/ScopeAnalyzerSpec.hs
  • jazz-hs/test/Analyzer/TypeInferenceSpec.hs
  • jazz-hs/test/AnalyzerSpec.hs
  • jazz-hs/test/OptimizerSpec.hs
  • jazz-hs/test/ParserSpec.hs
  • jazz-hs/test/Spec.hs
  • jazz-next/jazz-next.cabal
  • jazz-next/test/JazzNext/Compiler/Parser/AdtPatternParserSpec.hs
  • jazz-next/test/JazzNext/Compiler/Parser/ParserFoundationSpec.hs
  • jazz-next/test/JazzNext/Compiler/Runtime/ObservationSpec.hs
  • jazz-next/test/JazzNext/Compiler/Semantics/BindingSignatureCoherenceSpec.hs
  • jazz-next/test/JazzNext/Compiler/Semantics/RuntimeSemanticsSpec.hs
  • jazz.cabal
  • jazz/compiler/Core.jz
  • jazz/compiler/CoreLower.jz
  • jazz/compiler/CoreTypes.jz
  • jazz/compiler/Lexer.jz
  • jazz/compiler/LexerTypes.jz
  • jazz/compiler/LoweredIRTypes.jz
  • jazz/compiler/LoweredIRValidate.jz
  • jazz/compiler/Parser.jz
  • jazz/compiler/ParserContext.jz
  • jazz/compiler/ParserCore.jz
  • jazz/compiler/ParserDeclaration.jz
  • jazz/compiler/ParserExpression.jz
  • jazz/compiler/ParserOperator.jz
  • jazz/compiler/ParserPattern.jz
  • jazz/compiler/ParserProgram.jz
  • jazz/compiler/ParserSignature.jz
  • jazz/compiler/ParserToken.jz
  • jazz/compiler/ParserTypes.jz
  • jazz/compiler/TypedCoreTypes.jz
  • jazz/compiler/TypedCoreValidate.jz
  • jazz/stdlib/Char.jz
  • jazz/stdlib/Dictionary.jz
  • jazz/stdlib/IO.jz
  • jazz/stdlib/IOError.jz
  • jazz/stdlib/List.jz
  • jazz/stdlib/Map.jz
  • jazz/stdlib/Maybe.jz
  • jazz/stdlib/NonEmpty.jz
  • jazz/stdlib/Prelude.jz
  • jazz/stdlib/Queue.jz
  • jazz/stdlib/README.md
  • jazz/stdlib/Result.jz
  • jazz/stdlib/Set.jz
  • jazz/stdlib/Text.jz
  • jazz2/.gitignore
  • jazz2/CHANGELOG.md
  • jazz2/LICENSE
  • jazz2/README.md
  • jazz2/Setup.hs
  • jazz2/app/Main.hs
  • jazz2/jazz.cabal
  • jazz2/package.yaml
  • jazz2/src/Jazz.hs
  • jazz2/src/Jazz/AST.hs
  • jazz2/src/Jazz/AST/Declaration.hs
  • jazz2/src/Jazz/Lib.hs
  • jazz2/src/Jazz/Parser.hs
  • jazz2/src/Jazz/Parser/Lexer.hs
  • jazz2/src/Jazz/Parser/Monad.hs
  • jazz2/stack.yaml
  • jazz2/std/Data/Bool.jz
  • jazz2/std/Data/Collection.jz
  • jazz2/std/Data/Collection/List.jz
  • jazz2/std/Data/Num.jz
  • jazz2/std/Data/Num/Float.jz
  • jazz2/std/Data/Num/Integer.jz
  • jazz2/std/Data/Ord.jz
  • jazz2/std/Data/Structure/RBTree.jz
  • jazz2/std/Trumpet/Prim.jz
  • jazz2/test/ASTSpec.hs
  • jazz2/test/Spec.hs
  • program-support/Jazz/ProgramCorpus/Manifest.hs
  • program-support/Jazz/ProgramCorpus/Runner.hs
  • program-support/Jazz/ProgramCorpus/Types.hs
  • programs/README.md
  • programs/capability-workflow/Main.jz
  • programs/capability-workflow/Workflow.jz
  • programs/capability-workflow/expected.stdout
  • programs/collection-boundaries/Collections.jz
  • programs/collection-boundaries/Main.jz
  • programs/collection-boundaries/expected.stdout
  • programs/corpus.json
  • programs/dependency-planner/Graph.jz
  • programs/dependency-planner/Main.jz
  • programs/dependency-planner/expected.stdout
  • programs/expression-evaluator/Expression.jz
  • programs/expression-evaluator/Main.jz
  • programs/expression-evaluator/expected.stdout
  • programs/fannkuch/Fannkuch.jz
  • programs/fannkuch/Main.jz
  • programs/fannkuch/expected.stdout
  • programs/identifier-classifier/Main.jz
  • programs/identifier-classifier/expected.stdout
  • programs/merge-sort/Main.jz
  • programs/merge-sort/MergeSort.jz
  • programs/merge-sort/expected.stdout
  • programs/mini-frontend/Analysis.jz
  • programs/mini-frontend/Evaluation.jz
  • programs/mini-frontend/Main.jz
  • programs/mini-frontend/Syntax.jz
  • programs/mini-frontend/Token.jz
  • programs/mini-frontend/expected.stdout
  • programs/n-queens/Main.jz
  • programs/n-queens/Queens.jz
  • programs/n-queens/expected.stdout
  • programs/prime-sieve/Main.jz
  • programs/prime-sieve/Sieve.jz
  • programs/prime-sieve/expected.stdout
  • programs/queue-traversal/Main.jz
  • programs/queue-traversal/Traversal.jz
  • programs/queue-traversal/expected.stdout
  • programs/sorted-index/Index.jz
  • programs/sorted-index/Main.jz
  • programs/sorted-index/expected.stdout
  • programs/symbolic-differentiation/Main.jz
  • programs/symbolic-differentiation/Symbolic.jz
  • programs/symbolic-differentiation/expected.stdout
  • programs/tak/Main.jz
  • programs/tak/Tak.jz
  • programs/tak/expected.stdout
  • programs/text-processing/Main.jz
  • programs/text-processing/expected.stdout
  • programs/tree-transformations/Main.jz
  • programs/tree-transformations/Tree.jz
  • programs/tree-transformations/expected.stdout
  • programs/word-frequency/Main.jz
  • programs/word-frequency/expected.stdout
  • scripts/check-docs.sh
  • scripts/check-spec-authority.sh
  • scripts/check_legacy_doc_claims.py
  • scripts/test_check_legacy_doc_claims.py
  • src/Jazz/CLI/Main.hs
  • src/Jazz/Compiler/AST.hs
  • src/Jazz/Compiler/Analyzer.hs
  • src/Jazz/Compiler/Analyzer/UnusedBindings.hs
  • src/Jazz/Compiler/BuiltinCatalog.hs
  • src/Jazz/Compiler/BundledPrelude.hs
  • src/Jazz/Compiler/CapabilityFacts.hs
  • src/Jazz/Compiler/DiagnosticCatalog.hs
  • src/Jazz/Compiler/Diagnostics.hs
  • src/Jazz/Compiler/Diagnostics/Render.hs
  • src/Jazz/Compiler/Driver.hs
  • src/Jazz/Compiler/Force.hs
  • src/Jazz/Compiler/FractionalLiteral.hs
  • src/Jazz/Compiler/LoweredIR.hs
  • src/Jazz/Compiler/LoweredIR/Lower.hs
  • src/Jazz/Compiler/LoweredIR/Validate.hs
  • src/Jazz/Compiler/ModuleCompiler.hs
  • src/Jazz/Compiler/ModuleExports.hs
  • src/Jazz/Compiler/ModuleGraph.hs
  • src/Jazz/Compiler/ModuleInterface.hs
  • src/Jazz/Compiler/ModuleResolver.hs
  • src/Jazz/Compiler/ModuleRuntime.hs
  • src/Jazz/Compiler/Name.hs
  • src/Jazz/Compiler/Parser.hs
  • src/Jazz/Compiler/Parser/AST.hs
  • src/Jazz/Compiler/Parser/Context.hs
  • src/Jazz/Compiler/Parser/Declaration.hs
  • src/Jazz/Compiler/Parser/Expression.hs
  • src/Jazz/Compiler/Parser/Failure.hs
  • src/Jazz/Compiler/Parser/Lexer.hs
  • src/Jazz/Compiler/Parser/Lower.hs
  • src/Jazz/Compiler/Parser/Operator.hs
  • src/Jazz/Compiler/Parser/Pattern.hs
  • src/Jazz/Compiler/Parser/Signature.hs
  • src/Jazz/Compiler/Parser/TokenParser.hs
  • src/Jazz/Compiler/Pattern.hs
  • src/Jazz/Compiler/Prelude.hs
  • src/Jazz/Compiler/PreludeContract.hs
  • src/Jazz/Compiler/Profiling.hs
  • src/Jazz/Compiler/Purity.hs
  • src/Jazz/Compiler/RecursiveBindings.hs
  • src/Jazz/Compiler/Runtime.hs
  • src/Jazz/Compiler/Runtime/Observation.hs
  • src/Jazz/Compiler/Runtime/Observation/Profile.hs
  • src/Jazz/Compiler/Runtime/Observation/Render.hs
  • src/Jazz/Compiler/Runtime/Primitives.hs
  • src/Jazz/Compiler/Runtime/ScopePlan.hs
  • src/Jazz/Compiler/Runtime/Semantics.hs
  • src/Jazz/Compiler/Runtime/Types.hs
  • src/Jazz/Compiler/RuntimeHints.hs
  • src/Jazz/Compiler/RuntimeHost.hs
  • src/Jazz/Compiler/SignatureRendering.hs
  • src/Jazz/Compiler/SourceProgram.hs
  • src/Jazz/Compiler/TypeInference.hs
  • src/Jazz/Compiler/TypeInference/Capabilities.hs
  • src/Jazz/Compiler/TypeInference/Diagnostics.hs
  • src/Jazz/Compiler/TypeInference/Elaboration.hs
  • src/Jazz/Compiler/TypeInference/Operator.hs
  • src/Jazz/Compiler/TypeInference/Pattern.hs
  • src/Jazz/Compiler/TypeInference/Scope.hs
  • src/Jazz/Compiler/TypeInference/Signature.hs
  • src/Jazz/Compiler/TypeInference/Solver.hs
  • src/Jazz/Compiler/TypeInference/State.hs
  • src/Jazz/Compiler/TypeInference/TypeOps.hs
  • src/Jazz/Compiler/TypeInference/Types.hs
  • src/Jazz/Compiler/TypedCore.hs
  • src/Jazz/Compiler/TypedCore/Validate.hs
  • src/Jazz/Compiler/WarningConfig.hs
  • test/Jazz/Benchmark/MetadataSpec.hs
  • test/Jazz/Benchmark/StageSpec.hs
  • test/Jazz/CLI/CLISpec.hs
  • test/Jazz/Compiler/Bootstrap/CanonicalCoreComparison.hs
  • test/Jazz/Compiler/Bootstrap/CanonicalCoreComparisonSpec.hs
  • test/Jazz/Compiler/Bootstrap/CanonicalLexerComparison.hs
  • test/Jazz/Compiler/Bootstrap/CanonicalLexerComparisonSpec.hs
  • test/Jazz/Compiler/Bootstrap/CanonicalLoweredIRComparison.hs
  • test/Jazz/Compiler/Bootstrap/CanonicalParserComparison.hs
  • test/Jazz/Compiler/Bootstrap/CanonicalParserComparisonSpec.hs
  • test/Jazz/Compiler/Bootstrap/CanonicalTypedCoreComparison.hs
  • test/Jazz/Compiler/Bootstrap/CanonicalValue.hs
  • test/Jazz/Compiler/Bootstrap/JazzCoreControlFlowPatternsSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzCoreExpressionFoundationSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzCoreModulesCorpusClosureSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzCoreParity.hs
  • test/Jazz/Compiler/Bootstrap/JazzCoreSignaturesDeclarationsOperatorsSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzLexerParitySpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzLoweredIRContractSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserComponentSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserControlFlowPatternsSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserOperatorsFullParitySpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserParity.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserParitySpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserScale.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserScaleAssertions.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserScaleFullControlFlowSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserScaleFullDeclarationsSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserScaleFullExpressionSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserScaleFullOperatorSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserScaleSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzParserTypesDeclarationsModulesSpec.hs
  • test/Jazz/Compiler/Bootstrap/JazzTypedCoreContractSpec.hs
  • test/Jazz/Compiler/Bootstrap/ParserCoreSpec.hs
  • test/Jazz/Compiler/Bootstrap/TypedCoreExpressionDirectCallFixtures.hs
  • test/Jazz/Compiler/Bootstrap/TypedCoreExpressionDirectCallSpec.hs
  • test/Jazz/Compiler/Config/WarningConfigSpec.hs
  • test/Jazz/Compiler/Diagnostics/DiagnosticCatalogSpec.hs
  • test/Jazz/Compiler/Diagnostics/SignatureRenderingSpec.hs
  • test/Jazz/Compiler/Diagnostics/StructuredErrorDiagnosticsSpec.hs
  • test/Jazz/Compiler/Modules/Loader/BasicTests.hs
  • test/Jazz/Compiler/Modules/Loader/CapabilitiesTests.hs
  • test/Jazz/Compiler/Modules/Loader/DiagnosticsTests.hs
  • test/Jazz/Compiler/Modules/Loader/OperatorsTests.hs
  • test/Jazz/Compiler/Modules/Loader/Shared.hs
  • test/Jazz/Compiler/Modules/Loader/VisibilityTests.hs
  • test/Jazz/Compiler/Modules/LoaderSpec.hs
  • test/Jazz/Compiler/Modules/ModuleExportsSpec.hs
  • test/Jazz/Compiler/Modules/ModulePipelineContractSpec.hs
  • test/Jazz/Compiler/Modules/ModuleResolutionSpec.hs
  • test/Jazz/Compiler/Modules/PreludeLoadingSpec.hs
  • test/Jazz/Compiler/Parser/AdtPattern/DeclarationsTests.hs
  • test/Jazz/Compiler/Parser/AdtPattern/InvalidSyntaxTests.hs
  • test/Jazz/Compiler/Parser/AdtPattern/PatternsTests.hs
  • test/Jazz/Compiler/Parser/AdtPattern/Shared.hs
  • test/Jazz/Compiler/Parser/AdtPatternParserSpec.hs
  • test/Jazz/Compiler/Parser/DeclarationParserSpec.hs
  • test/Jazz/Compiler/Parser/ExpressionParserSpec.hs
  • test/Jazz/Compiler/Parser/FixtureCorpus.hs
  • test/Jazz/Compiler/Parser/Foundation/ExpressionsTests.hs
  • test/Jazz/Compiler/Parser/Foundation/InvalidSyntaxTests.hs
  • test/Jazz/Compiler/Parser/Foundation/ModulesTests.hs
  • test/Jazz/Compiler/Parser/Foundation/Shared.hs
  • test/Jazz/Compiler/Parser/Foundation/SignaturesTests.hs
  • test/Jazz/Compiler/Parser/IfExpressionParserSpec.hs
  • test/Jazz/Compiler/Parser/LambdaParserSpec.hs
  • test/Jazz/Compiler/Parser/ModuleImportParserSpec.hs
  • test/Jazz/Compiler/Parser/OperatorFixitySpec.hs
  • test/Jazz/Compiler/Parser/OperatorInvalidSyntaxSpec.hs
  • test/Jazz/Compiler/Parser/OperatorSectionSpec.hs
  • test/Jazz/Compiler/Parser/ParserFoundationSpec.hs
  • test/Jazz/Compiler/Parser/PatternParserSpec.hs
  • test/Jazz/Compiler/Parser/TestSupport.hs
  • test/Jazz/Compiler/Parser/TokenParserSpec.hs
  • test/Jazz/Compiler/ProfilingSpec.hs
  • test/Jazz/Compiler/Runtime/Observation/ProfileTests.hs
  • test/Jazz/Compiler/Runtime/Observation/StatisticsTests.hs
  • test/Jazz/Compiler/Runtime/ObservationSpec.hs
  • test/Jazz/Compiler/Semantics/AdtPatternRuntimeSpec.hs
  • test/Jazz/Compiler/Semantics/AdtPatternTypeSpec.hs
  • test/Jazz/Compiler/Semantics/BindingSignature/BasicsTests.hs
  • test/Jazz/Compiler/Semantics/BindingSignature/ConstraintsTests.hs
  • test/Jazz/Compiler/Semantics/BindingSignature/DiagnosticsTests.hs
  • test/Jazz/Compiler/Semantics/BindingSignature/GeneralizationTests.hs
  • test/Jazz/Compiler/Semantics/BindingSignature/InferenceOwnershipTests.hs
  • test/Jazz/Compiler/Semantics/BindingSignature/RecursionTests.hs
  • test/Jazz/Compiler/Semantics/BindingSignature/Shared.hs
  • test/Jazz/Compiler/Semantics/BindingSignatureCoherenceSpec.hs
  • test/Jazz/Compiler/Semantics/BuiltinCatalogSpec.hs
  • test/Jazz/Compiler/Semantics/CoreNormalizationSpec.hs
  • test/Jazz/Compiler/Semantics/IfExpressionTypeSpec.hs
  • test/Jazz/Compiler/Semantics/LambdaSemanticsSpec.hs
  • test/Jazz/Compiler/Semantics/NameSemanticsSpec.hs
  • test/Jazz/Compiler/Semantics/PatternSemanticsSpec.hs
  • test/Jazz/Compiler/Semantics/PrimitiveSemantics/EqualityOperator.hs
  • test/Jazz/Compiler/Semantics/PrimitiveSemantics/NumericConversions.hs
  • test/Jazz/Compiler/Semantics/PrimitiveSemantics/ScalarCollection.hs
  • test/Jazz/Compiler/Semantics/PrimitiveSemantics/Shared.hs
  • test/Jazz/Compiler/Semantics/PrimitiveSemanticsSpec.hs
  • test/Jazz/Compiler/Semantics/PuritySemanticsSpec.hs
  • test/Jazz/Compiler/Semantics/RebindingWarningSpec.hs
  • test/Jazz/Compiler/Semantics/RecursiveBindingsSpec.hs
  • test/Jazz/Compiler/Semantics/Runtime/CapabilitiesTests.hs
  • test/Jazz/Compiler/Semantics/Runtime/ControlFlowTests.hs
  • test/Jazz/Compiler/Semantics/Runtime/HostIOTests.hs
  • test/Jazz/Compiler/Semantics/Runtime/NumericTests.hs
  • test/Jazz/Compiler/Semantics/Runtime/RecursionTests.hs
  • test/Jazz/Compiler/Semantics/Runtime/RenderingTests.hs
  • test/Jazz/Compiler/Semantics/Runtime/ScopeTests.hs
  • test/Jazz/Compiler/Semantics/Runtime/Shared.hs
  • test/Jazz/Compiler/Semantics/RuntimeSemanticsSpec.hs
  • test/Jazz/Compiler/Stdlib/FoundationsTests.hs
  • test/Jazz/Compiler/Stdlib/LinearCollectionsTests.hs
  • test/Jazz/Compiler/Stdlib/OrderedCollectionsTests.hs
  • test/Jazz/Compiler/Stdlib/Shared.hs
  • test/Jazz/Compiler/Stdlib/StdlibSpec.hs
  • test/Jazz/Compiler/Stdlib/TextTests.hs
  • test/Jazz/ProgramCorpus/ProgramCorpusSpec.hs
  • test/Jazz/Repository/AuditSpec.hs
  • test/Jazz/Repository/AuthoredSources.hs
  • test/Jazz/Repository/FeatureInventory.hs
  • test/Jazz/Repository/JazzSourceFormat.hs
  • test/Jazz/Repository/PackagePolicy.hs
  • test/Jazz/Repository/Root.hs
  • test/Jazz/Repository/SourceLayout.hs
  • test/Jazz/TestHarness.hs
  • test/Jazz/TestSource.hs
  • test/fixtures/lexer/keyword-operator-inventory.jz
  • test/fixtures/lexer/unknown-operator-character.jz
  • test/fixtures/runtime-observation/compile-failure.jz
  • test/fixtures/runtime-observation/literal-success.jz
  • test/fixtures/runtime-observation/module-cache/src/App/Main.jz
  • test/fixtures/runtime-observation/module-cache/src/App/Values.jz
  • test/fixtures/runtime-observation/module-profile/src/App/Main.jz
  • test/fixtures/runtime-observation/module-success/src/App/Main.jz
  • test/fixtures/runtime-observation/runtime-failure.jz
  • test/fixtures/stdlib/foundations/ListBoundaries.jz
  • test/fixtures/stdlib/foundations/ListNormalize.jz
  • test/fixtures/stdlib/foundations/ListPartialStable.jz
  • test/fixtures/stdlib/foundations/ListShape.jz
  • test/fixtures/stdlib/foundations/ListTransform.jz
  • test/fixtures/stdlib/foundations/MaybeResult.jz
  • test/fixtures/stdlib/foundations/MaybeResultBranches.jz
  • test/fixtures/stdlib/foundations/NonEmpty.jz
  • test/fixtures/stdlib/linear-collections/Dictionary.jz
  • test/fixtures/stdlib/linear-collections/Queue.jz
  • test/fixtures/stdlib/ordered-collections/Map.jz
  • test/fixtures/stdlib/ordered-collections/MapExtrema.jz
  • test/fixtures/stdlib/ordered-collections/MapPersistence.jz
  • test/fixtures/stdlib/ordered-collections/MapShapes.jz
  • test/fixtures/stdlib/ordered-collections/MapTraversal.jz
  • test/fixtures/stdlib/ordered-collections/Set.jz
  • test/fixtures/stdlib/text/CharCase.jz
  • test/fixtures/stdlib/text/Core.jz
  • test/fixtures/stdlib/text/LargeConcat.jz
  • test/fixtures/stdlib/text/Search.jz
  • test/fixtures/stdlib/text/SplitCleanup.jz

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codacy-production

Copy link
Copy Markdown
Contributor

Not up to standards ⛔

🔴 Issues 2 medium · 1 minor

Alerts:
⚠ 3 issues (≤ 0 issues of at least minor severity)

Results:
3 new issues

Category Results
Security 1 medium
1 minor
Complexity 1 medium

View in Codacy

🟢 Metrics 82 complexity · 0 duplication

Metric Results
Complexity 82
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9 issues found across 753 files

Confidence score: 3/5

  • In scripts/check_legacy_doc_claims.py, clause handling can both miss real live-claim violations (subject/negation split with “but remain read-only”) and incorrectly fail archive-only references, which makes the docs gate unreliable in both directions — preserve subject/status across continuations and distinguish archive/tag locations from current checkout before flagging.
  • In scripts/check-spec-authority.sh, authority checks can be skipped when “legacy/historical” wording appears or when obsolete identifiers are spelled JazzNext/Paths_jazz_next, so live-authority claims may evade audit — keep only explicit negative-authority exemptions and add both identifiers to the obsolete pattern.
  • The combination of flake.nix pointing cabal at ./. and broader substring matching in scripts/check-docs.sh raises false-positive risk and CI churn by scanning far more files with generic phrases — narrow derivation inputs and tighten reject pattern scope to intended paths/content.
  • Lower-severity consistency issues in scripts/test_check_legacy_doc_claims.py, docs/spec/tooling/cli-source-input.md, and docs/execution/queue.md can still mislead future maintenance (test intent mismatch, unresolved archive pointer, naming drift) — align test setup with its claim and normalize doc references/terminology.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="flake.nix">

<violation number="1" location="flake.nix:18">
P3: Pointing the cabal source at the whole repository root (`./.`) means the derivation and `checks.jazz-test-suite` now include every tracked file — docs/, programs/, editors/, benchmark/, .codex/ and root markdown — not just the compiler tree that `./jazz-next` previously scoped. Any edit to a doc or README will now invalidate and fully rebuild the Nix derivation / flake check in CI, and the closure is needlessly large. Consider filtering the source with `pkgs.lib.cleanSourceWith` (keeping `jazz.cabal`, `cabal.project`, and `src/`, `jazz/`, `app/`, `test/`) to preserve the compiler-only purity the old `./jazz-next` path gave.</violation>
</file>

<file name="scripts/test_check_legacy_doc_claims.py">

<violation number="1" location="scripts/test_check_legacy_doc_claims.py:89">
P3: The name `test_repeated_obsolete_identity_claims_are_evaluated_independently` promises independent handling of multiple claims, but the combined sentence stays a single clause (no boundary chars), so it only repeats the negation-scoping case already covered by `test_negated_claim_does_not_hide_later_positive_claim`. Either split the fixture into separate clauses (e.g., two `. `-terminated sentences) so independence is actually exercised, or rename the test to match what it verifies.</violation>
</file>

<file name="scripts/check-docs.sh">

<violation number="1" location="scripts/check-docs.sh:85">
P3: This widened reject_pattern now does case-insensitive whole-tree substring matching for generic phrases like `js output`, `javascript generation`, and `codegen placeholder` across every file in `src/`, `jazz/`, and `test/`. Any future comment or .jz doc describing a JS backend or a codegen placeholder (legitimate content unrelated to legacy naming) will trip the docs gate with no way to exempt it, making the check brittle and hard to maintain. Consider scoping the scan to legacy-identity references (e.g. only flagging these phrases when adjacent to removed tree names) or allowing an explicit allowlist/annotation so the gate survives unrelated JS-backend notes.</violation>
</file>

<file name="scripts/check_legacy_doc_claims.py">

<violation number="1" location="scripts/check_legacy_doc_claims.py:13">
P1: A live claim can bypass the documentation gate when its subject is followed by an archive negation and a `but remain read-only` continuation. Preserve subject/status association across these clauses and limit negation matching to the status it negates.</violation>

<violation number="2" location="scripts/check_legacy_doc_claims.py:191">
P2: Archive-only historical references are rejected as live claims, so valid docs about the recovery tag can fail `check-docs.sh`. Distinguish an archive/tag location from a current checkout before returning a violation.</violation>
</file>

<file name="docs/spec/tooling/cli-source-input.md">

<violation number="1" location="docs/spec/tooling/cli-source-input.md:16">
P3: The referenced archive location isn't resolvable from the doc alone: no git tag named `archive/pre-root-canonicalization-2026-07-31` exists in this repo (git tag -l is empty), and only the recovery commit `1df2c5bd...` mentioned in the PR description resolves. Consider adding that commit hash here so the retained historical evidence is actually locatable by anyone reading this doc, rather than a tag that may not be created.</violation>
</file>

<file name="scripts/check-spec-authority.sh">

<violation number="1" location="scripts/check-spec-authority.sh:52">
P2: Live-authority claims using `JazzNext` or `Paths_jazz_next` bypass this audit because neither spelling is in `obsolete_identity_pattern`. Include both obsolete identifiers so the documentation check covers every identity the repository audit removes.</violation>

<violation number="2" location="scripts/check-spec-authority.sh:68">
P2: A live-authority claim is ignored whenever it also calls the implementation legacy or historical. Those terms do not negate authority, so retain only explicit negative-authority exemptions (or otherwise require the claim itself to be negated).</violation>
</file>

<file name="docs/execution/queue.md">

<violation number="1" location="docs/execution/queue.md:48">
P3: The JN-MODULE-REBASE row title now reads "onto active root owners", but the rest of this canonicalization pass (JN-PURITY-EFFECT and JN-ABSTRACTION rows, entry template `src/Jazz/`) uses `Jazz` for the same active compiler. For a PR whose goal is unifying naming, keeping two different labels points at the same root-path target is inconsistent; consider aligning this title to `Jazz` (e.g. "onto active `Jazz` owners").</violation>
</file>

Note: This PR contains a large number of files. cubic only reviews up to 200 files per PR, so some files may not have been reviewed. cubic prioritizes the most important files to review.

Re-trigger cubic

_HEADING_PATTERN = re.compile(r"^\s*#{1,6}\s+")
_LIST_ITEM_PATTERN = re.compile(r"^\s*(?:[-*+]|\d+[.)])\s+(.*)$")
_CLAUSE_BOUNDARY_PATTERN = re.compile(
r"(?<=[.!?;])\s+|,\s+(?=(?:but|however)\b)", re.IGNORECASE

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: A live claim can bypass the documentation gate when its subject is followed by an archive negation and a but remain read-only continuation. Preserve subject/status association across these clauses and limit negation matching to the status it negates.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/check_legacy_doc_claims.py, line 13:

<comment>A live claim can bypass the documentation gate when its subject is followed by an archive negation and a `but remain read-only` continuation. Preserve subject/status association across these clauses and limit negation matching to the status it negates.</comment>

<file context>
@@ -0,0 +1,243 @@
+_HEADING_PATTERN = re.compile(r"^\s*#{1,6}\s+")
+_LIST_ITEM_PATTERN = re.compile(r"^\s*(?:[-*+]|\d+[.)])\s+(.*)$")
+_CLAUSE_BOUNDARY_PATTERN = re.compile(
+    r"(?<=[.!?;])\s+|,\s+(?=(?:but|however)\b)", re.IGNORECASE
+)
+_LEGACY_TREE_PATTERN = re.compile(
</file context>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No PR 124 code change: this migration-only checker and its caller are removed in stacked PR #125 (codex/documentation-reset), so the parsing bug is unreachable in the resulting stack. Fixing the deleted parser here would duplicate obsolete work.

for pattern in _NEGATED_STATUS_PATTERNS
for negation in pattern.finditer(clause)
)
if not prefixed_as_false and not directly_negated:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Archive-only historical references are rejected as live claims, so valid docs about the recovery tag can fail check-docs.sh. Distinguish an archive/tag location from a current checkout before returning a violation.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/check_legacy_doc_claims.py, line 191:

<comment>Archive-only historical references are rejected as live claims, so valid docs about the recovery tag can fail `check-docs.sh`. Distinguish an archive/tag location from a current checkout before returning a violation.</comment>

<file context>
@@ -0,0 +1,243 @@
+            for pattern in _NEGATED_STATUS_PATTERNS
+            for negation in pattern.finditer(clause)
+        )
+        if not prefixed_as_false and not directly_negated:
+            return True
+    return False
</file context>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No PR 124 code change: this migration-only legacy-claims checker is removed in stacked PR #125 (codex/documentation-reset). The archive-reference logic does not survive the stack.

if [[ -n "$authority_candidates" ]]; then
unsupported_claims="$({
printf '%s\n' "$authority_candidates" | rg -v -i \
'(removed|legacy|historical|pre-migration|not[^[:alpha:]]{0,6}(active|authoritative|normative|source of truth|implementation target)|non[- ]normative)' || true

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: A live-authority claim is ignored whenever it also calls the implementation legacy or historical. Those terms do not negate authority, so retain only explicit negative-authority exemptions (or otherwise require the claim itself to be negated).

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/check-spec-authority.sh, line 68:

<comment>A live-authority claim is ignored whenever it also calls the implementation legacy or historical. Those terms do not negate authority, so retain only explicit negative-authority exemptions (or otherwise require the claim itself to be negated).</comment>

<file context>
@@ -23,40 +23,53 @@ require_pattern() {
+if [[ -n "$authority_candidates" ]]; then
+  unsupported_claims="$({
+    printf '%s\n' "$authority_candidates" | rg -v -i \
+      '(removed|legacy|historical|pre-migration|not[^[:alpha:]]{0,6}(active|authoritative|normative|source of truth|implementation target)|non[- ]normative)' || true
+  })"
+  if [[ -n "$unsupported_claims" ]]; then
</file context>
Suggested change
'(removed|legacy|historical|pre-migration|not[^[:alpha:]]{0,6}(active|authoritative|normative|source of truth|implementation target)|non[- ]normative)' || true
'(removed|not[^[:alpha:]]{0,6}(active|authoritative|normative|source of truth|implementation target)|non[- ]normative)' || true

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No PR 124 code change: stacked PR #125 replaces this transitional docs/spec authority audit with the accepted-RFC/public-documentation authority gate. This filter is removed rather than carried forward.

former_package='jazz-''next'
former_reference='jazz-''hs'
former_rewrite='jazz''2'
obsolete_identity_pattern="(${former_package}|${former_reference}|${former_rewrite})"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Live-authority claims using JazzNext or Paths_jazz_next bypass this audit because neither spelling is in obsolete_identity_pattern. Include both obsolete identifiers so the documentation check covers every identity the repository audit removes.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/check-spec-authority.sh, line 52:

<comment>Live-authority claims using `JazzNext` or `Paths_jazz_next` bypass this audit because neither spelling is in `obsolete_identity_pattern`. Include both obsolete identifiers so the documentation check covers every identity the repository audit removes.</comment>

<file context>
@@ -23,40 +23,53 @@ require_pattern() {
+former_package='jazz-''next'
+former_reference='jazz-''hs'
+former_rewrite='jazz''2'
+obsolete_identity_pattern="(${former_package}|${former_reference}|${former_rewrite})"
+authority_claim_pattern="(${obsolete_identity_pattern}.{0,160}(active (compiler|implementation|authority|path)|authoritative|normative|source of truth|implementation target))|((active (compiler|implementation|authority|path)|authoritative|normative|source of truth|implementation target).{0,160}${obsolete_identity_pattern})"
+
</file context>
Suggested change
obsolete_identity_pattern="(${former_package}|${former_reference}|${former_rewrite})"
obsolete_identity_pattern="(${former_package}|${former_reference}|${former_rewrite}|[jJ]azz[Nn]ext|[Pp]aths_jazz_next)"

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No PR 124 code change: stacked PR #125 replaces this transitional authority check, including these legacy identity assertions. This code does not survive the stack.

- `jazz-hs/` and `jazz2/` remain read-only legacy evidence.
- Source-input behavior is implemented in `src/Jazz/CLI/Main.hs`.
- Pre-root-canonicalization behavior preserved at archive tag
`archive/pre-root-canonicalization-2026-07-31` is historical evidence only;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The referenced archive location isn't resolvable from the doc alone: no git tag named archive/pre-root-canonicalization-2026-07-31 exists in this repo (git tag -l is empty), and only the recovery commit 1df2c5bd... mentioned in the PR description resolves. Consider adding that commit hash here so the retained historical evidence is actually locatable by anyone reading this doc, rather than a tag that may not be created.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/spec/tooling/cli-source-input.md, line 16:

<comment>The referenced archive location isn't resolvable from the doc alone: no git tag named `archive/pre-root-canonicalization-2026-07-31` exists in this repo (git tag -l is empty), and only the recovery commit `1df2c5bd...` mentioned in the PR description resolves. Consider adding that commit hash here so the retained historical evidence is actually locatable by anyone reading this doc, rather than a tag that may not be created.</comment>

<file context>
@@ -1,18 +1,20 @@
-- `jazz-hs/` and `jazz2/` remain read-only legacy evidence.
+- Source-input behavior is implemented in `src/Jazz/CLI/Main.hs`.
+- Pre-root-canonicalization behavior preserved at archive tag
+  `archive/pre-root-canonicalization-2026-07-31` is historical evidence only;
+  the archived implementation trees are absent from the current checkout.
 
</file context>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No code change. The premise is false: the remote annotated tag archive/pre-root-canonicalization-2026-07-31 exists and peels to commit 1df2c5bd2524cdd52bd18e989967373e255f80d3. The referenced transitional document is also removed by stacked PR #125.

Comment thread test/Jazz/CLI/CLISpec.hs Outdated
Comment thread flake.nix Outdated
jazzNext = pkgs.haskell.lib.enableCabalFlag
(hsPkgs.callCabal2nix "jazz-next" ./jazz-next { })
jazz = pkgs.haskell.lib.enableCabalFlag
(hsPkgs.callCabal2nix "jazz" ./. { })

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: Pointing the cabal source at the whole repository root (./.) means the derivation and checks.jazz-test-suite now include every tracked file — docs/, programs/, editors/, benchmark/, .codex/ and root markdown — not just the compiler tree that ./jazz-next previously scoped. Any edit to a doc or README will now invalidate and fully rebuild the Nix derivation / flake check in CI, and the closure is needlessly large. Consider filtering the source with pkgs.lib.cleanSourceWith (keeping jazz.cabal, cabal.project, and src/, jazz/, app/, test/) to preserve the compiler-only purity the old ./jazz-next path gave.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At flake.nix, line 18:

<comment>Pointing the cabal source at the whole repository root (`./.`) means the derivation and `checks.jazz-test-suite` now include every tracked file — docs/, programs/, editors/, benchmark/, .codex/ and root markdown — not just the compiler tree that `./jazz-next` previously scoped. Any edit to a doc or README will now invalidate and fully rebuild the Nix derivation / flake check in CI, and the closure is needlessly large. Consider filtering the source with `pkgs.lib.cleanSourceWith` (keeping `jazz.cabal`, `cabal.project`, and `src/`, `jazz/`, `app/`, `test/`) to preserve the compiler-only purity the old `./jazz-next` path gave.</comment>

<file context>
@@ -14,8 +14,8 @@
-        jazzNext = pkgs.haskell.lib.enableCabalFlag
-          (hsPkgs.callCabal2nix "jazz-next" ./jazz-next { })
+        jazz = pkgs.haskell.lib.enableCabalFlag
+          (hsPkgs.callCabal2nix "jazz" ./. { })
           "development";
       in {
</file context>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 935f9e2: callCabal2nix now consumes an explicit lib.fileset containing the Cabal/package/test inputs instead of the whole repository. The evaluated source excludes .codex, README, and unrelated docs; docs/compiler/architecture.md remains because Cabal declares it. Repository audit and focused suites pass. The full Nix aggregate passed 60/61 suites; its sole known lexer timing flake passed immediately in isolation.

Comment thread docs/execution/queue.md
| --- | --- | --- | --- | --- | --- |
| `JN-BOOTSTRAP-INTERPRETER-PROFILE-PLAN-001` | Stage the hosted Jazz bootstrap interpreter profile | `Approved closure/recursion design and executor-ready child` | The hosted lexer, parser, canonical core, typed-core and lowered-IR contract foundations, language-quality gate, and opt-in scalar/direct-call typed-core producer/lowerer are complete. Normal compile/run remains canonical-core/interpreter based. Closure/recursion is next only as a design gate; control flow, multi-module integration, LLVM, object/link, and native-runtime implementation remain unpromoted. | [2026-07-10-jazz-next-bootstrap-interpreter-profile-design.md](../superpowers/specs/2026-07-10-jazz-next-bootstrap-interpreter-profile-design.md) | `2026-07-30` |
| `JN-MODULE-REBASE-PLAN-001` | Rebase module/import execution plan onto active `jazz-next` owners | `No accepted module child after explicit export lists` | Active-path ownership is rebased onto the current resolver/compiler/runtime path. `JN-MODULE-TYPED-EXPORT-INVENTORY-001` and `JN-MODULE-EXPLICIT-EXPORT-LIST-001` landed the shared inventory plus header allowlists, local/public separation, deterministic `E4015`, compiler import filtering, and runtime publication. Re-exports, alias-qualified classes, package semantics, and further stdlib/catalog growth remain blocked behind separate contracts. | [2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md](../plans/2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md) | `2026-07-10` |
| `JN-MODULE-REBASE-PLAN-001` | Rebase module/import execution plan onto active root owners | `No accepted module child after explicit export lists` | Active-path ownership is rebased onto the current resolver/compiler/runtime path. `JN-MODULE-TYPED-EXPORT-INVENTORY-001` and `JN-MODULE-EXPLICIT-EXPORT-LIST-001` landed the shared inventory plus header allowlists, local/public separation, deterministic `E4015`, compiler import filtering, and runtime publication. Re-exports, alias-qualified classes, package semantics, and further stdlib/catalog growth remain blocked behind separate contracts. | [2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md](../plans/2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md) | `2026-07-10` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The JN-MODULE-REBASE row title now reads "onto active root owners", but the rest of this canonicalization pass (JN-PURITY-EFFECT and JN-ABSTRACTION rows, entry template src/Jazz/) uses Jazz for the same active compiler. For a PR whose goal is unifying naming, keeping two different labels points at the same root-path target is inconsistent; consider aligning this title to Jazz (e.g. "onto active Jazz owners").

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/execution/queue.md, line 48:

<comment>The JN-MODULE-REBASE row title now reads "onto active root owners", but the rest of this canonicalization pass (JN-PURITY-EFFECT and JN-ABSTRACTION rows, entry template `src/Jazz/`) uses `Jazz` for the same active compiler. For a PR whose goal is unifying naming, keeping two different labels points at the same root-path target is inconsistent; consider aligning this title to `Jazz` (e.g. "onto active `Jazz` owners").</comment>

<file context>
@@ -45,14 +45,14 @@ target and no named candidate currently.
 | --- | --- | --- | --- | --- | --- |
 | `JN-BOOTSTRAP-INTERPRETER-PROFILE-PLAN-001` | Stage the hosted Jazz bootstrap interpreter profile | `Approved closure/recursion design and executor-ready child` | The hosted lexer, parser, canonical core, typed-core and lowered-IR contract foundations, language-quality gate, and opt-in scalar/direct-call typed-core producer/lowerer are complete. Normal compile/run remains canonical-core/interpreter based. Closure/recursion is next only as a design gate; control flow, multi-module integration, LLVM, object/link, and native-runtime implementation remain unpromoted. | [2026-07-10-jazz-next-bootstrap-interpreter-profile-design.md](../superpowers/specs/2026-07-10-jazz-next-bootstrap-interpreter-profile-design.md) | `2026-07-30` |
-| `JN-MODULE-REBASE-PLAN-001` | Rebase module/import execution plan onto active `jazz-next` owners | `No accepted module child after explicit export lists` | Active-path ownership is rebased onto the current resolver/compiler/runtime path. `JN-MODULE-TYPED-EXPORT-INVENTORY-001` and `JN-MODULE-EXPLICIT-EXPORT-LIST-001` landed the shared inventory plus header allowlists, local/public separation, deterministic `E4015`, compiler import filtering, and runtime publication. Re-exports, alias-qualified classes, package semantics, and further stdlib/catalog growth remain blocked behind separate contracts. | [2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md](../plans/2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md) | `2026-07-10` |
+| `JN-MODULE-REBASE-PLAN-001` | Rebase module/import execution plan onto active root owners | `No accepted module child after explicit export lists` | Active-path ownership is rebased onto the current resolver/compiler/runtime path. `JN-MODULE-TYPED-EXPORT-INVENTORY-001` and `JN-MODULE-EXPLICIT-EXPORT-LIST-001` landed the shared inventory plus header allowlists, local/public separation, deterministic `E4015`, compiler import filtering, and runtime publication. Re-exports, alias-qualified classes, package semantics, and further stdlib/catalog growth remain blocked behind separate contracts. | [2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md](../plans/2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md) | `2026-07-10` |
 | `JN-USER-DEFINED-OPERATORS-PLAN-001` | Stage user-defined operator work beyond frozen v1 operators | `No accepted operator child after custom associativity` | Stage 2 fixed-tier declarations, same-source executable function bindings, operator-specific adjacent signatures, custom numeric precedence, and explicit `left`/`right`/`nonassoc` associativity are complete for parser declaration recognition, source-unit-local metadata, fixed-tier parsing, custom `precedence 1..99` parsing, diagnostics, ordinary callable `(op) = <expr>.` bindings, infix use, bare operator values, left sections, right sections, recursive local bindings, signature-constrained hidden bindings, non-associative same-precedence chain rejection, and module replay isolation without user-visible operator imports or exports. Runtime overload dispatch, cross-module operator binding APIs, and new built-in operators remain blocked until separate executable contracts exist. | [15-operator-fixity-and-sections.md](../plans/spec-clarification/2026-03-03/syntax/15-operator-fixity-and-sections.md) | `2026-07-08` |
 | `JN-TYPE-GRAMMAR-CLOSURE-PLAN-001` | Plan type-system expansion beyond rebase closure | `No accepted type-solver child after runtime evidence` | The broad type-solver coordination contract is accepted and recorded as `JN-TYPE-SOLVER-CONTRACT-001`. Ordinary-binding schemes/per-use instantiation, solver-backed variable constrained-signature schemes, inferred class constraints from strict equality and qualified method requirements, final defaulting/ambiguity diagnostics, explicit type application, and compiler-owned runtime evidence have landed. No remaining accepted child is source-backed; the umbrella stays blocked until a new concrete type-system contract names target paths and focused verification. | [2026-03-18-jazz-next-type-grammar-and-signature-rebase-plan.md](../plans/2026-03-18-jazz-next-type-grammar-and-signature-rebase-plan.md) | `2026-07-08` |
</file context>
Suggested change
| `JN-MODULE-REBASE-PLAN-001` | Rebase module/import execution plan onto active root owners | `No accepted module child after explicit export lists` | Active-path ownership is rebased onto the current resolver/compiler/runtime path. `JN-MODULE-TYPED-EXPORT-INVENTORY-001` and `JN-MODULE-EXPLICIT-EXPORT-LIST-001` landed the shared inventory plus header allowlists, local/public separation, deterministic `E4015`, compiler import filtering, and runtime publication. Re-exports, alias-qualified classes, package semantics, and further stdlib/catalog growth remain blocked behind separate contracts. | [2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md](../plans/2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md) | `2026-07-10` |
| `JN-MODULE-REBASE-PLAN-001` | Rebase module/import execution plan onto active `Jazz` owners | `No accepted module child after explicit export lists` | Active-path ownership is rebased onto the current resolver/compiler/runtime path. `JN-MODULE-TYPED-EXPORT-INVENTORY-001` and `JN-MODULE-EXPLICIT-EXPORT-LIST-001` landed the shared inventory plus header allowlists, local/public separation, deterministic `E4015`, compiler import filtering, and runtime publication. Re-exports, alias-qualified classes, package semantics, and further stdlib/catalog growth remain blocked behind separate contracts. | [2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md](../plans/2026-03-18-jazz-next-runtime-architecture-and-interpreter-execution-plan.md) | `2026-07-10` |

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No PR 124 code change: docs/execution/queue.md is deleted in stacked PR #125 when private execution state moves out of public docs, so this wording does not survive the stack.

)

def test_repeated_obsolete_identity_claims_are_evaluated_independently(self) -> None:
obsolete_identity = "jazz-" + "hs"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The name test_repeated_obsolete_identity_claims_are_evaluated_independently promises independent handling of multiple claims, but the combined sentence stays a single clause (no boundary chars), so it only repeats the negation-scoping case already covered by test_negated_claim_does_not_hide_later_positive_claim. Either split the fixture into separate clauses (e.g., two . -terminated sentences) so independence is actually exercised, or rename the test to match what it verifies.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/test_check_legacy_doc_claims.py, line 89:

<comment>The name `test_repeated_obsolete_identity_claims_are_evaluated_independently` promises independent handling of multiple claims, but the combined sentence stays a single clause (no boundary chars), so it only repeats the negation-scoping case already covered by `test_negated_claim_does_not_hide_later_positive_claim`. Either split the fixture into separate clauses (e.g., two `. `-terminated sentences) so independence is actually exercised, or rename the test to match what it verifies.</comment>

<file context>
@@ -0,0 +1,224 @@
+        )
+
+    def test_repeated_obsolete_identity_claims_are_evaluated_independently(self) -> None:
+        obsolete_identity = "jazz-" + "hs"
+        source = (
+            f"It is false that {obsolete_identity} remains read-only and "
</file context>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No PR 124 code change: this migration-only checker regression suite is deleted with the checker in stacked PR #125, so the duplicated test case does not survive the stack.

Comment thread scripts/check-docs.sh
generated_artifact_pattern='generatedjs|generated js|js output|javascript output|javascript generation|codegen placeholder'
reject_pattern "jazz-next must not reference JavaScript generation artifacts" "$generated_artifact_pattern" jazz-next
reject_pattern "active compiler sources must not reference JavaScript generation artifacts" "$generated_artifact_pattern" src jazz test

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: This widened reject_pattern now does case-insensitive whole-tree substring matching for generic phrases like js output, javascript generation, and codegen placeholder across every file in src/, jazz/, and test/. Any future comment or .jz doc describing a JS backend or a codegen placeholder (legitimate content unrelated to legacy naming) will trip the docs gate with no way to exempt it, making the check brittle and hard to maintain. Consider scoping the scan to legacy-identity references (e.g. only flagging these phrases when adjacent to removed tree names) or allowing an explicit allowlist/annotation so the gate survives unrelated JS-backend notes.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/check-docs.sh, line 85:

<comment>This widened reject_pattern now does case-insensitive whole-tree substring matching for generic phrases like `js output`, `javascript generation`, and `codegen placeholder` across every file in `src/`, `jazz/`, and `test/`. Any future comment or .jz doc describing a JS backend or a codegen placeholder (legitimate content unrelated to legacy naming) will trip the docs gate with no way to exempt it, making the check brittle and hard to maintain. Consider scoping the scan to legacy-identity references (e.g. only flagging these phrases when adjacent to removed tree names) or allowing an explicit allowlist/annotation so the gate survives unrelated JS-backend notes.</comment>

<file context>
@@ -62,13 +64,27 @@ require_pattern "docs/execution/done-archive.md" "done archive heading" '^# Exec
+  docs/spec docs/jazz-language-state.md
 generated_artifact_pattern='generatedjs|generated js|js output|javascript output|javascript generation|codegen placeholder'
-reject_pattern "jazz-next must not reference JavaScript generation artifacts" "$generated_artifact_pattern" jazz-next
+reject_pattern "active compiler sources must not reference JavaScript generation artifacts" "$generated_artifact_pattern" src jazz test
 reject_pattern "active compile docs must not expose generated-JS artifact naming" "$generated_artifact_pattern" \
   docs/execution/queue.md \
</file context>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No PR 124 code change: stacked PR #125 replaces check-docs.sh and removes this broad generated-artifact scan entirely. The brittle matcher does not survive the stack.

@Un3qual
Un3qual marked this pull request as ready for review August 1, 2026 19:02
Base automatically changed from codex/repository-productization-design to main August 3, 2026 17:06
@codeant-ai

codeant-ai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Skipping CodeAnt AI review — this PR changes more than 100 files, which usually means a migration, codemod, or vendored drop. Line-level review on diffs this large produces duplicate findings on the same rewrite pattern and drowns out anything that actually matters.

If you still want a review, comment @codeant-ai : review. For better signal, consider splitting the PR into smaller chunks.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 935f9e26b8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread jazz.cabal
PERFORMANCE.md
programs/README.md

extra-source-files:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include repository-audit inputs in the source distribution

When the generated source archive is unpacked and tested, repository-audit-spec runs testCanonicalRepositoryInfrastructure, which reads flake.nix, .gitignore, AGENTS.md, the cabal.project* files, and the scripts listed in infrastructurePaths. None of those files are declared under extra-source-files, so Cabal omits them from the source distribution and the test fails on its first missing-file read. Add these audit inputs to the distribution or exclude this repository-only audit from packaged tests.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e24f999. jazz.cabal now packages .gitignore, AGENTS.md, flake.nix, the Cabal project files, and the Python/shell audit scripts through extra-source-files, so repository-audit-spec has all of its runtime inputs in an sdist. The script globs also accommodate PR 125 replacing checker scripts without stale exact-file entries. I reproduced the failure from an unpacked archive, regenerated the archive, and all 31 RepositoryAudit tests passed there; cabal check was clean and the full Nix aggregate passed 61/61 suites.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e24f999edc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +186 to +189
directly_negated = any(
negation.start() <= positive_claim.start() < negation.end()
for pattern in _NEGATED_STATUS_PATTERNS
for negation in pattern.finditer(clause)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Limit negation to the claim it actually negates

When one clause contains a negated status followed by a live claim, such as jazz-hs does not remain read-only and jazz2 remains read-only in the current checkout, the greedy negation match extends through the second read-only; the overlap test therefore treats both positive matches as negated and returns no violation. This lets the new documentation gate accept exactly the obsolete live-tree claim it is intended to reject, so the negation must be associated with its own subject/status rather than any later positive match in the clause.

AGENTS.md reference: AGENTS.md:L7-L11

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed on PR 124: the greedy negation matcher spans from the first does not through the later read-only, so the report is valid. The focused reproduction returned no violation for the mixed-subject sentence while rejecting the positive control. No PR 124 code change: stacked PR 125 deletes scripts/check_legacy_doc_claims.py, its test suite, and its caller. This also duplicates the earlier Cubic thread on the same subject/status bug; patching the deleted parser here would create dead work in the immediate successor.

Comment on lines +67 to +68
printf '%s\n' "$authority_candidates" | rg -v -i \
'(removed|legacy|historical|pre-migration|not[^[:alpha:]]{0,6}(active|authoritative|normative|source of truth|implementation target)|non[- ]normative)' || true

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not exempt the entire authority claim by keyword

If a candidate line contains any exemption word, the inverted filter discards the whole line even when that same line makes a positive authority claim; for example, Although it is a historical tree, jazz-hs is the authoritative source of truth matches authority_claim_pattern but is removed solely because it contains historical. The check then exits successfully despite the invalid authority assignment, so exemptions need to be scoped to a genuinely negated or historical claim rather than applied line-wide.

AGENTS.md reference: AGENTS.md:L17-L18

Useful? React with 👍 / 👎.

@Un3qual
Un3qual merged commit 5902a8a into main Aug 3, 2026
4 of 5 checks passed
@Un3qual
Un3qual deleted the codex/repository-canonicalization branch August 3, 2026 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant