Run artifact

evidence/prompt_outputs/20260822.045941.036Z_jq_plan_codex.output.txt

=== BEGIN ARTIFACT ARCHITECTURE.md ===
# ARCHITECTURE: jq

The standalone `jq` executable is implemented in Python using only the standard library. It parses jq filters, evaluates ordered generators over JSON input, and emits compact JSON values.

## Programmatic Acceptance

=== AC architecture-boundary ===
from pathlib import Path
import ast
entry = Path("jq")
assert entry.is_file()
assert entry.stat().st_mode & 0o111
assert ast.parse(entry.read_text(encoding="utf-8"))
=== END AC architecture-boundary ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Accessors.md ===
# FEATURE: Accessors

Object fields, array indices, dynamic keys, optional access, and negative indices follow jq semantics.

## Programmatic Acceptance

=== AC value-002-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC value-002-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Advanced-Grammar.md ===
# FEATURE: Advanced Grammar

The parser supports declarations, control constructs, bindings, modules, and destructuring syntax.

## Programmatic Acceptance

=== AC parse-004-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC parse-004-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Arithmetic-and-Structural-Operators.md ===
# FEATURE: Arithmetic and Structural Operators

Arithmetic, string, array, object, recursive merge, repetition, and splitting operators are supported.

## Programmatic Acceptance

=== AC flow-001-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC flow-001-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Assignment-Operators.md ===
# FEATURE: Assignment Operators

Deletion and immutable assignment operators are supported.

## Programmatic Acceptance

=== AC path-003-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC path-003-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Boolean-and-Alternative-Operators.md ===
# FEATURE: Boolean and Alternative Operators

Boolean, negation, defined-or, and defined-or assignment semantics are supported.

## Programmatic Acceptance

=== AC flow-002-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC flow-002-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Collection-Transformations.md ===
# FEATURE: Collection Transformations

Collection transformation and recursive traversal builtins preserve generator ordering and multiplicity.

## Programmatic Acceptance

=== AC data-001-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC data-001-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Complex-Assignments.md ===
# FEATURE: Complex Assignments

Complex assignments handle generated and deeply nested paths.

## Programmatic Acceptance

=== AC path-004-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC path-004-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Composition.md ===
# FEATURE: Composition

Pipes, commas, collections, objects, and cartesian generator semantics are supported.

## Programmatic Acceptance

=== AC core-002-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC core-002-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Conditionals-and-Exception-Flow.md ===
# FEATURE: Conditionals and Exception Flow

Conditional branches, try/catch handling, and optional evaluation are supported.

## Programmatic Acceptance

=== AC flow-003-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC flow-003-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Conformance-Assets.md ===
# FEATURE: Conformance Assets

The supplied conformance corpus and harness are staged unchanged.

## Programmatic Acceptance

=== AC conformance-assets-parse ===
from pathlib import Path
assert Path("sources/jq.test").is_file()
assert Path("sources/exclusions.txt").is_file()
=== END AC conformance-assets-parse ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Destructuring-Alternatives.md ===
# FEATURE: Destructuring Alternatives

Destructuring patterns and `?//` alternatives are supported.

## Programmatic Acceptance

=== AC func-004-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC func-004-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Errors-and-Optional.md ===
# FEATURE: Errors and Optional Evaluation

Empty streams, runtime errors, exception handling, optional evaluation, and partial output are supported.

## Programmatic Acceptance

=== AC core-003-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC core-003-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Executable-Entry-Point.md ===
# FEATURE: Executable Entry Point

The application provides the executable `./jq -c '<program>'` interface.

## Programmatic Acceptance

=== AC executable-permission ===
from pathlib import Path
entry = Path("jq")
assert entry.is_file()
assert entry.stat().st_mode & 0o111
=== END AC executable-permission ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Filter-Grammar.md ===
# FEATURE: Filter Grammar

The parser implements jq expression grammar, precedence, composition, indexing, construction, and optional operators.

## Programmatic Acceptance

=== AC parse-003-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC parse-003-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Formats-and-Serialization.md ===
# FEATURE: Formats and Serialization

JSON conversion and jq output-format filters are supported.

## Programmatic Acceptance

=== AC formats-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC formats-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Function-Definitions.md ===
# FEATURE: Function Definitions

Function definitions provide lexical scope, redefinition, and recursion.

## Programmatic Acceptance

=== AC function-definitions-scoped-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC function-definitions-scoped-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Function-Parameters.md ===
# FEATURE: Function Parameters

User-defined filter and value function parameters support multiple arities and generator arguments.

## Programmatic Acceptance

=== AC function-parameters-scoped-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC function-parameters-scoped-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Generator-Core.md ===
# FEATURE: Generator Core

Filters evaluate as ordered streams with multiplicity, backtracking, and empty results.

## Programmatic Acceptance

=== AC core-001-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC core-001-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Index-and-Membership.md ===
# FEATURE: Index and Membership

Search, quantifier, emptiness, indexing, joining, and membership utilities are supported.

## Programmatic Acceptance

=== AC data-004-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC data-004-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Labels-and-Breaks.md ===
# FEATURE: Labels and Breaks

Lexically scoped labels and break control are supported.

## Programmatic Acceptance

=== AC flow-004-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC flow-004-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Lexer.md ===
# FEATURE: Lexer

The lexer tokenizes jq literals, identifiers, operators, delimiters, comments, and formats.

## Programmatic Acceptance

=== AC lexer-basic-tokens ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC lexer-basic-tokens ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Literals-and-Strings.md ===
# FEATURE: Literals and Strings

JSON literals, escaped strings, formatted strings, and interpolation are supported.

## Programmatic Acceptance

=== AC parse-002-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC parse-002-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Object-Entries-and-Containment.md ===
# FEATURE: Object Entries and Containment

Object keys, entries, containment, and entry transformations follow jq semantics.

## Programmatic Acceptance

=== AC data-003-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC data-003-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Path-Discovery.md ===
# FEATURE: Path Discovery

Path discovery and projections support exact and generated path expressions.

## Programmatic Acceptance

=== AC path-001-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC path-001-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Path-Primitives.md ===
# FEATURE: Path Primitives

Nested jq values can be read, updated, created, and deleted through path arrays.

## Programmatic Acceptance

=== AC path-002-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC path-002-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Process-Contract.md ===
# FEATURE: Process Contract

Compilation, runtime failure, success, diagnostics, and partial output follow the required exit contract.

## Programmatic Acceptance

=== AC process-compile-exit ===
import subprocess
result = subprocess.run(["./jq", "-c", "{"], input="null\n", capture_output=True, text=True)
assert result.returncode == 3
assert result.stderr
=== END AC process-compile-exit ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Recursive-Generators.md ===
# FEATURE: Recursive Generators

Recursive generator filters preserve termination and stream ordering.

## Programmatic Acceptance

=== AC recursive-generators-scoped-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC recursive-generators-scoped-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Reductions-and-Iteration-Control.md ===
# FEATURE: Reductions and Iteration Control

Reductions, iteration controls, range generation, and generator selection are supported.

## Programmatic Acceptance

=== AC reductions-scoped-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC reductions-scoped-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Regular-Expressions.md ===
# FEATURE: Regular Expressions

Regex matching, captures, scanning, splitting, and substitution use Python standard-library regular expressions.

## Programmatic Acceptance

=== AC regex-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC regex-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Scoped-Conformance.md ===
# FEATURE: Scoped Conformance Verification

Construct-specific conformance verification executes selected cases and requires a non-empty passing result.

## Programmatic Acceptance

=== AC scoped-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC scoped-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Slices-and-Iteration.md ===
# FEATURE: Slices and Iteration

Array and string slices and array/object iteration preserve jq ordering and multiplicity.

## Programmatic Acceptance

=== AC value-003-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC value-003-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Sorting-and-Grouping.md ===
# FEATURE: Sorting and Grouping

Sorting, grouping, uniqueness, and extrema use jq structural comparison.

## Programmatic Acceptance

=== AC data-002-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC data-002-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Streaming.md ===
# FEATURE: Streaming Transformations

Streaming representations can be emitted, reconstructed, and truncated.

## Programmatic Acceptance

=== AC streaming-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC streaming-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-String-Manipulation.md ===
# FEATURE: String Manipulation

String trimming, conversion, splitting, joining, case, and Unicode filters are supported.

## Programmatic Acceptance

=== AC text-001-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC text-001-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Truthiness-and-Comparison.md ===
# FEATURE: Truthiness and Comparison

Jq truthiness, equality, inequality, and structural ordering are supported.

## Programmatic Acceptance

=== AC core-004-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC core-004-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Type-and-Numeric-Primitives.md ===
# FEATURE: Type and Numeric Primitives

Type, length, numeric conversion, predicates, and mathematical primitive filters are supported.

## Programmatic Acceptance

=== AC value-004-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC value-004-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Value-Model.md ===
# FEATURE: Value Model

The runtime represents jq JSON values, including non-finite numeric values produced by filters.

## Programmatic Acceptance

=== AC value-001-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/jq.test").is_file()
=== END AC value-001-conformance ===
=== END ARTIFACT ===
=== BEGIN ARTIFACT FEATURE-Variable-Bindings.md ===
# FEATURE: Variable Bindings

Lexical bindings, shadowing, and destructuring patterns are supported.

## Programmatic Acceptance

=== AC variable-bindings-scoped-conformance ===
from pathlib import Path
assert Path("jq").is_file()
assert Path("sources/run_conformance.py").is_file()
=== END AC variable-bindings-scoped-conformance ===
=== END ARTIFACT ===