<pblock label="Plan topology repair" kind="repair">
Plan Topology Repair
Drydock accepted the Blueprint artifact batch but rejected its transient work graph. Repair only the deterministic defect reported below. Preserve every story ID, implements assignment and story fields that do not need to change. Dependencies must name exact story IDs declared in this topology.
Emit each artifact below in exactly this form, and emit no other text:
=== BEGIN ARTIFACT <FILENAME> === <the complete file body> === END ARTIFACT ===
The filename appears once, in the opening delimiter. The closing delimiter is the constant token above and never carries a name.
Emit exactly one such block for each of: TOPOLOGY.md.
Repair pass: 1
Deterministic validation defect:
Plan generation failed: the declared work graph is inconsistent. dependency cycle: exec-002 -> core-003 -> exec-002 No Blueprint or Manifest artifacts were written.
Execution output: /mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/workspace/logs/20260822.153150.857Z_jq_plan_codex.output.txt
Original TOPOLOGY.md, in the same form your reply must use: === BEGIN ARTIFACT TOPOLOGY.md ===
TOPOLOGY: jq
story architecture
summary: Define the standalone jq interpreter architecture and boundaries. type: foundational kind: capability phase: 1 implements: ARCHITECTURE.md context: sources/jq-manual.txt, sources/parser.y, sources/lexer.l, TECHNOLOGY_STACK.md context_roles: | jq-manual.txt: normative specification parser.y: normative specification lexer.l: normative specification TECHNOLOGY_STACK.md: technology decisions stack: common.md, python.md provides: interpreter architecture, executable boundary, generator evaluation model consumes: acceptance: yes scope: both instructions: | Define the Python standard-library interpreter architecture, parser/evaluator boundaries, immutable value handling, generator semantics, diagnostics, and executable process contract. Establish module ownership so later stories extend the architecture without external runtimes.
story exec-001
summary: Implement the executable jq entry point. type: service kind: capability phase: 2 implements: FEATURE-Executable-Entry-Point.md covers: EXEC-001 context: sources/INSTRUCTIONS.md, sources/run_conformance.py, sources/full_test.sh context_roles: | INSTRUCTIONS.md: author intent run_conformance.py: conformance harness full_test.sh: conformance harness stack: common.md, python.md provides: executable jq, -c filter invocation consumes: interpreter architecture, JSON input stream depends: architecture, conf-001 acceptance: yes scope: target instructions: | Create an executable named jq at the application root. Accept the exercised -c '<program>' interface, read JSON values from stdin, evaluate the filter, and emit compact JSON values one per line. Keep the executable self-contained within the standard-library implementation.
story exec-002
summary: Implement jq compilation and runtime exit contracts. type: service kind: capability phase: 2 implements: FEATURE-Process-Contract.md covers: EXEC-002 context: sources/INSTRUCTIONS.md, sources/run_conformance.py context_roles: | INSTRUCTIONS.md: author intent run_conformance.py: conformance harness stack: common.md, python.md provides: compile exit 3, runtime exit 5, success exit 0, stderr diagnostics consumes: executable jq, parser, evaluator depends: exec-001, parse-004, core-003 acceptance: yes scope: target instructions: | Distinguish syntax/static rejection from runtime errors. Return 3 for compile failures, 5 for runtime failures, and 0 for successful completion. Preserve values emitted before a runtime error and send diagnostics only to stderr.
story exec-003
summary: Implement JSON process input and compact output handling. type: service kind: capability phase: 2 implements: FEATURE-JSON-IO-Boundary.md covers: EXEC-003 context: sources/INSTRUCTIONS.md, sources/run_conformance.py context_roles: | INSTRUCTIONS.md: author intent run_conformance.py: conformance harness stack: common.md, python.md provides: JSON stdin decoding, compact JSON line serialization, Unicode and special-number handling consumes: executable jq, JSON value model depends: exec-001, value-001 acceptance: yes scope: target instructions: | Decode the harness-provided JSON input stream and serialize every generated value as one compact JSON value per line. Preserve ordering, Unicode, NaN, infinity, and numeric behavior required by the corpus.
story parse-001
summary: Implement jq lexical scanning. type: service kind: capability phase: 2 implements: FEATURE-Lexer.md covers: PARSE-001 context: sources/lexer.l, sources/parser.y, sources/jq.test context_roles: | lexer.l: normative specification parser.y: normative specification jq.test: conformance suite stack: common.md, python.md provides: jq tokens, comments, delimiters, identifiers, literals, bindings consumes: interpreter architecture depends: architecture, conf-001 acceptance: yes scope: target instructions: | Implement a standard-library lexer matching the supplied tokenization rules, including keywords, identifiers, fields, bindings, literals, comments, formats, delimiters, and interpolation states.
story parse-002
summary: Implement literals, escapes, formats, and interpolation parsing. type: service kind: capability phase: 2 implements: FEATURE-Literals-And-Interpolation.md covers: PARSE-002 context: sources/lexer.l, sources/parser.y, sources/jq.test context_roles: | lexer.l: normative specification parser.y: normative specification jq.test: conformance suite stack: common.md, python.md provides: JSON string escapes, Unicode literals, interpolation, format tokens consumes: lexer, interpreter architecture depends: parse-001 acceptance: yes scope: target instructions: | Parse and evaluate JSON escapes, Unicode strings, formatted strings, and \(expression) interpolation. Reject invalid escapes and malformed interpolation at compile time.
story parse-003
summary: Implement the jq filter expression grammar. type: service kind: capability phase: 2 implements: FEATURE-Filter-Grammar.md covers: PARSE-003 context: sources/parser.y, sources/lexer.l, sources/jq.test context_roles: | parser.y: normative specification lexer.l: normative specification jq.test: conformance suite stack: common.md, python.md provides: AST grammar for pipes, commas, indexing, slices, arrays, objects, operators, optionals consumes: lexer, literal parser depends: parse-001, parse-002 acceptance: yes scope: target instructions: | Implement parser precedence and associativity for filter composition, indexing, slicing, arrays, objects, unary operators, binary operators, and optional expressions. Produce an executable AST or equivalent intermediate representation.
story parse-004
summary: Implement declarations and control syntax parsing. type: service kind: capability phase: 2 implements: FEATURE-Declarations-And-Control-Syntax.md covers: PARSE-004 context: sources/parser.y, sources/lexer.l, sources/jq.test context_roles: | parser.y: normative specification lexer.l: normative specification jq.test: conformance suite stack: common.md, python.md provides: def, module grammar, imports grammar, conditionals, try, reductions, foreach, labels, patterns consumes: filter grammar, lexer depends: parse-003 acceptance: yes scope: target instructions: | Parse declarations, module syntax, conditionals, try/catch, reduce, foreach, labels, bindings, and destructuring patterns. Reject invalid module grammar and unresolved labels at compile time without loading excluded module fixtures.
story core-001
summary: Implement stream-valued filter evaluation. type: service kind: capability phase: 2 implements: FEATURE-Generator-Core.md covers: CORE-001 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: ordered filter generators, empty, iteration, backtracking consumes: parsed AST, JSON value model depends: parse-003, value-001 acceptance: yes scope: target instructions: | Evaluate every filter as an ordered generator supporting zero, one, or many outputs. Preserve backtracking, multiplicity, and ordering for identity, iteration, range, empty, and downstream pipeline evaluation.
story core-002
summary: Implement composition and Cartesian generator evaluation. type: service kind: capability phase: 2 implements: FEATURE-Composition-And-Cartesian-Evaluation.md covers: CORE-002 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: pipes, commas, Cartesian arguments, arrays, objects, binary filter composition consumes: generator core, parsed expressions depends: core-001, parse-003 acceptance: yes scope: target instructions: | Implement composition semantics for pipes and commas, Cartesian products across multi-output arguments, array collection, object construction, and binary operators.
story core-003
summary: Implement empty results and runtime error flow. type: service kind: capability phase: 2 implements: FEATURE-Errors-And-Optional-Evaluation.md covers: CORE-003 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: empty, runtime errors, optional filters, try/catch, partial output consumes: generator core, process contract depends: core-001, core-002, exec-002 acceptance: yes scope: target instructions: | Implement runtime error propagation, try/catch, optional operators, empty behavior, and partial output before failure. Preserve the distinction between suppressed and unsuppressed errors.
story core-004
summary: Implement jq truthiness, equality, and ordering. type: service kind: capability phase: 2 implements: FEATURE-Truthiness-And-Comparison.md covers: CORE-004 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: false/null truthiness, equality, ordering, numeric equivalence consumes: generator core, JSON value model depends: core-002, value-001 acceptance: yes scope: target instructions: | Implement jq truthiness in which only false and null are falsey. Implement structural equality, numeric equivalence, and jq's total type ordering for comparisons.
story value-001
summary: Implement the jq JSON value model and numeric edge cases. type: service kind: capability phase: 2 implements: FEATURE-Value-Model.md covers: VALUE-001 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: null, booleans, numbers, strings, arrays, objects, NaN, infinities consumes: interpreter architecture depends: architecture, conf-001 acceptance: yes scope: target instructions: | Define immutable jq values using only the standard library. Preserve numeric literals where required, support NaN and infinities, and provide JSON conversion behavior compatible with the harness.
story value-002
summary: Implement field and index access. type: service kind: capability phase: 2 implements: FEATURE-Field-And-Index-Access.md covers: VALUE-002 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: object fields, array indices, optional access, negative indices, missing values consumes: value model, generator core depends: value-001, core-001, parse-003 acceptance: yes scope: target instructions: | Implement object field access, array and string indexing, optional access, negative indices, missing-field null behavior, and corresponding runtime errors.
story value-003
summary: Implement slices and collection iteration. type: service kind: capability phase: 2 implements: FEATURE-Slices-And-Iteration.md covers: VALUE-003 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: array/string slices, array/object iteration, fractional bounds, out-of-range behavior consumes: field and index access, generator core depends: value-002 acceptance: yes scope: target instructions: | Implement array and string slices, object and array iteration, optional iteration, fractional bounds, negative bounds, and out-of-range behavior.
story value-004
summary: Implement type and numeric primitive builtins. type: service kind: capability phase: 2 implements: FEATURE-Type-And-Numeric-Primitives.md covers: VALUE-004 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: type, length, utf8bytelength, numeric predicates, conversions, arithmetic math primitives consumes: value model, comparison semantics depends: value-001, value-002, core-004 acceptance: yes scope: target instructions: | Implement type, length, UTF-8 byte length, numeric predicates, tonumber/toboolean, floor, sqrt, and the standard mathematical primitives required by the corpus.
story flow-001
summary: Implement arithmetic and structural operators. type: service kind: capability phase: 3 implements: FEATURE-Arithmetic-And-Structural-Operators.md covers: FLOW-001 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: plus, minus, multiply, divide, modulo, negation, recursive merge, string operations consumes: value model, comparison semantics depends: value-004, core-002, core-003 acceptance: yes scope: target instructions: | Implement typed arithmetic and structural operators, including recursive object merge, string repetition and splitting, array subtraction, division-by-zero errors, and unary negation.
story flow-002
summary: Implement boolean and alternative operators. type: service kind: capability phase: 3 implements: FEATURE-Boolean-And-Alternative-Operators.md covers: FLOW-002 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: and, or, not, defined-or, defined-or assignment consumes: truthiness, generator core, arithmetic operators depends: core-004, flow-001 acceptance: yes scope: target instructions: | Implement Boolean operators, not, defined-or fallback semantics, and //= while preserving generator multiplicity and short-circuit behavior.
story flow-003
summary: Implement conditionals and exception flow. type: service kind: capability phase: 3 implements: FEATURE-Conditionals-And-Exception-Flow.md covers: FLOW-003 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: if/then/elif/else/end, try/catch, optional operators consumes: truthiness, runtime error flow depends: core-003, core-004, flow-002 acceptance: yes scope: target instructions: | Implement branching over generator-valued conditions, optional else branches, elif chains, try/catch propagation, and optional error suppression.
story flow-004
summary: Implement lexical labels and breaks. type: service kind: capability phase: 3 implements: FEATURE-Labels-And-Breaks.md covers: FLOW-004 context: sources/parser.y, sources/jq-manual.txt, sources/jq.test context_roles: | parser.y: normative specification jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: label, break, lexical generator termination consumes: parser declarations, runtime error flow, generator core depends: parse-004, core-003, flow-003 acceptance: yes scope: target instructions: | Implement lexically scoped labels and break control so the correct enclosing generator stops without leaking unrelated outputs. Reject breaks without visible labels.
story flow-005
summary: Implement reductions and iteration controls. type: service kind: capability phase: 3 implements: FEATURE-Reductions-And-Iteration-Control.md covers: FLOW-005 context: sources/jq-manual.txt, sources/builtin.jq, sources/jq.test context_roles: | jq-manual.txt: normative specification builtin.jq: reference implementation jq.test: conformance suite stack: common.md, python.md provides: reduce, foreach, range, limit, skip, first, last, nth consumes: generator core, labels, bindings depends: core-002, flow-004, func-001 acceptance: yes scope: target instructions: | Implement reduce and foreach state transitions plus range, limit, skip, first, last, and nth. Preserve Cartesian argument evaluation, backtracking, extraction, and label-based termination.
story flow-006
summary: Implement recursive generators. type: service kind: capability phase: 3 implements: FEATURE-Recursive-Generators.md covers: FLOW-006 context: sources/jq-manual.txt, sources/builtin.jq, sources/jq.test context_roles: | jq-manual.txt: normative specification builtin.jq: reference implementation jq.test: conformance suite stack: common.md, python.md provides: while, until, repeat, recurse, recursive descent consumes: generator core, function definitions, conditionals depends: flow-003, flow-005, func-003 acceptance: yes scope: target instructions: | Implement while, until, repeat, recurse, recursive descent, and safe recursive generator termination with the stream semantics specified by the manual.
story func-001
summary: Implement lexical variable bindings. type: service kind: capability phase: 3 implements: FEATURE-Variable-Bindings.md covers: FUNC-001 context: sources/parser.y, sources/jq-manual.txt, sources/jq.test context_roles: | parser.y: normative specification jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: as bindings, nested scope, shadowing, keyword identifiers, value lifetime consumes: parser, generator evaluator depends: parse-004, core-002 acceptance: yes scope: target instructions: | Implement lexical as bindings, nested scope, shadowing, keyword variable names, and binding lifetime across generator backtracking.
story func-002
summary: Implement filter and value function parameters. type: service kind: capability phase: 3 implements: FEATURE-Function-Parameters.md covers: FUNC-002 context: sources/parser.y, sources/jq-manual.txt, sources/jq.test context_roles: | parser.y: normative specification jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: filter parameters, value parameters, multiple arities, closures, Cartesian arguments consumes: lexical bindings, generator evaluator depends: func-001, core-002 acceptance: yes scope: target instructions: | Implement user-defined filter and value parameters, multiple arities, closures, and repeated argument evaluation under jq's callback/filter parameter semantics.
story func-003
summary: Implement function definitions, scope, and recursion. type: service kind: capability phase: 3 implements: FEATURE-Function-Definitions-And-Recursion.md covers: FUNC-003 context: sources/parser.y, sources/jq-manual.txt, sources/jq.test context_roles: | parser.y: normative specification jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: def declarations, redefinitions, lexical function scope, recursion, forward/self references consumes: parser, function parameters, bindings depends: parse-004, func-001, func-002 acceptance: yes scope: target instructions: | Implement definitions and lexical function scope, redefinitions by arity, self-recursion, and the function visibility rules settled by the parser and manual.
story func-004
summary: Implement destructuring patterns and alternatives. type: service kind: capability phase: 3 implements: FEATURE-Destructuring-Patterns.md covers: FUNC-004 context: sources/parser.y, sources/jq-manual.txt, sources/jq.test context_roles: | parser.y: normative specification jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: array/object patterns, missing bindings, ?// alternatives consumes: lexical bindings, generator errors, function scope depends: func-001, flow-003, parse-004 acceptance: yes scope: target instructions: | Implement array and object destructuring, null bindings for missing members, and ?// fallback alternatives including retry after downstream errors.
story path-001
summary: Implement path discovery and projection. type: service kind: capability phase: 4 implements: FEATURE-Path-Discovery.md covers: PATH-001 context: sources/jq-manual.txt, sources/builtin.jq, sources/jq.test context_roles: | jq-manual.txt: normative specification builtin.jq: reference implementation jq.test: conformance suite stack: common.md, python.md provides: path, paths, pick, path projections consumes: accessors, iteration, generator evaluator depends: value-003, func-004, flow-006 acceptance: yes scope: target instructions: | Implement exact and pattern path discovery, paths, path filters, and pick projections while preserving path ordering and invalid-path errors.
story path-002
summary: Implement path access and mutation primitives. type: service kind: capability phase: 4 implements: FEATURE-Path-Primitives.md covers: PATH-002 context: sources/jq-manual.txt, sources/builtin.jq, sources/jq.test context_roles: | jq-manual.txt: normative specification builtin.jq: reference implementation jq.test: conformance suite stack: common.md, python.md provides: getpath, setpath, delpaths consumes: path discovery, immutable value model depends: path-001, value-002 acceptance: yes scope: target instructions: | Implement getpath, setpath, and delpaths with nested object/array creation, deletion, invalid-path handling, negative-index rules, and depth limits.
story path-003
summary: Implement deletion and assignment operators. type: service kind: capability phase: 4 implements: FEATURE-Deletion-And-Assignment.md covers: PATH-003 context: sources/jq-manual.txt, sources/builtin.jq, sources/jq.test context_roles: | jq-manual.txt: normative specification builtin.jq: reference implementation jq.test: conformance suite stack: common.md, python.md provides: del, =, |=, +=, -=, *=, /=, %=, //= consumes: path primitives, arithmetic operators, generator evaluator depends: path-002, flow-001, flow-002 acceptance: yes scope: target instructions: | Implement immutable deletion, plain assignment, update assignment, arithmetic assignment, defined-or assignment, multi-path updates, and first-result update semantics.
story path-004
summary: Implement complex assignment edge cases. type: service kind: capability phase: 4 implements: FEATURE-Complex-Assignment-Edges.md covers: PATH-004 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: iterated paths, empty updates, array expansion, invalid paths, assignment depth limits consumes: assignment operators, path primitives depends: path-003 acceptance: yes scope: target instructions: | Complete iterated path assignments, empty-update deletion, array expansion, invalid and fractional/NaN indices, negative-index behavior, and depth-limit protections.
story data-001
summary: Implement collection transformation builtins. type: service kind: capability phase: 4 implements: FEATURE-Collection-Transformations.md covers: DATA-001 context: sources/builtin.jq, sources/jq-manual.txt, sources/jq.test context_roles: | builtin.jq: reference implementation jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: map, map_values, select, add, flatten, transpose, combinations, walk consumes: generator evaluator, operators, path mutation depends: flow-005, path-003, value-004 acceptance: yes scope: target instructions: | Implement collection transformation builtins and their generator behavior, including map, map_values, select, add, flatten, transpose, combinations, and recursive walk.
story data-002
summary: Implement sorting and grouping builtins. type: service kind: capability phase: 4 implements: FEATURE-Sorting-And-Grouping.md covers: DATA-002 context: sources/builtin.jq, sources/jq-manual.txt, sources/jq.test context_roles: | builtin.jq: reference implementation jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: sort, sort_by, group_by, unique, unique_by, min, max, keyed variants consumes: comparison and ordering semantics, collection transformations depends: core-004, data-001 acceptance: yes scope: target instructions: | Implement sorting, keyed sorting, grouping, uniqueness, minimum, maximum, and keyed variants using jq's structural ordering and stable generator behavior.
story data-003
summary: Implement object-entry and containment builtins. type: service kind: capability phase: 4 implements: FEATURE-Object-Entries-And-Containment.md covers: DATA-003 context: sources/builtin.jq, sources/jq-manual.txt, sources/jq.test context_roles: | builtin.jq: reference implementation jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: keys, keys_unsorted, has, in, inside, contains, to_entries, from_entries, with_entries consumes: value access, equality, collection transformations depends: value-002, core-004, data-001 acceptance: yes scope: target instructions: | Implement object and array key utilities, containment and inverse containment, membership, entry conversions, and with_entries including supported key aliases.
story data-004
summary: Implement index and membership utilities. type: service kind: capability phase: 4 implements: FEATURE-Index-And-Membership-Utilities.md covers: DATA-004 context: sources/builtin.jq, sources/jq-manual.txt, sources/jq.test context_roles: | builtin.jq: reference implementation jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: indices, index, rindex, bsearch, all, any, isempty, SQL IN consumes: comparison semantics, generator evaluator depends: core-004, flow-005, data-003 acceptance: yes scope: target instructions: | Implement string and array index searches, binary search, all/any short-circuiting, isempty, and SQL-style IN operators over generator streams.
story text-001
summary: Implement string manipulation builtins. type: service kind: capability phase: 4 implements: FEATURE-String-Manipulation.md covers: TEXT-001 context: sources/jq-manual.txt, sources/builtin.jq, sources/jq.test context_roles: | jq-manual.txt: normative specification builtin.jq: reference implementation jq.test: conformance suite stack: common.md, python.md provides: trim, ltrim, rtrim, prefix/suffix, case conversion, explode, implode, split, join, interpolation consumes: string values, generator evaluator depends: value-004, parse-002, core-002 acceptance: yes scope: target instructions: | Implement string trimming, prefix/suffix operations, ASCII case conversion, codepoint explode/implode, split/join, and string interpolation.
story text-002
summary: Implement JSON and output format filters. type: service kind: capability phase: 4 implements: FEATURE-JSON-And-Output-Formats.md covers: TEXT-002 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: tostring, tojson, fromjson, @text, @json, @html, @uri, @urid, @csv, @tsv, @sh, @base64, @base64d consumes: value model, string manipulation depends: value-001, text-001 acceptance: yes scope: target instructions: | Implement JSON conversion and all required format filters using standard-library escaping, encoding, and decoding rules, including formatted interpolation behavior.
story text-003
summary: Implement regular-expression filters. type: service kind: capability phase: 4 implements: FEATURE-Regular-Expressions.md covers: TEXT-003 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: test, match, capture, scan, split, splits, sub, gsub consumes: string values, interpolation, generator evaluator depends: text-001, parse-002, core-002 acceptance: yes scope: target instructions: | Implement regex filters with standard-library regex support, required flags, named and unnamed captures, offsets, lengths, streams, splitting, substitution, and global substitution.
story text-004
summary: Implement date and time filters. type: service kind: capability phase: 4 implements: FEATURE-Date-And-Time-Filters.md covers: TEXT-004 context: sources/jq-manual.txt, sources/builtin.jq, sources/jq.test context_roles: | jq-manual.txt: normative specification builtin.jq: reference implementation jq.test: conformance suite stack: common.md, python.md provides: fromdate, todate, strptime, strftime, gmtime, localtime, mktime consumes: value conversion, string values depends: value-004, text-001 acceptance: yes scope: target instructions: | Implement UTC ISO date conversion and the supplied low-level date/time filters using Python datetime and time facilities, preserving jq's broken-down time representation.
story io-001
summary: Implement input stream controls. type: service kind: capability phase: 4 implements: FEATURE-Input-Streams.md covers: IO-001 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: input, inputs, input_filename, input_line_number consumes: JSON process boundary, generator evaluator depends: exec-003, core-001 acceptance: yes scope: target instructions: | Implement input and inputs against the fixed stdin interface, together with input filename and line number behavior available within that interface.
story io-002
summary: Implement diagnostics and stderr filters. type: service kind: capability phase: 4 implements: FEATURE-Diagnostics-And-Stderr.md covers: IO-002 context: sources/jq-manual.txt, sources/jq.test context_roles: | jq-manual.txt: normative specification jq.test: conformance suite stack: common.md, python.md provides: debug, stderr, halt_error consumes: process exit contract, JSON serialization depends: exec-002, exec-003, core-003 acceptance: yes scope: target instructions: | Implement debug, stderr, halt_error, and their output-channel and exit-code semantics. Keep diagnostics out of stdout and preserve partial output behavior.
story io-003
summary: Implement streaming transformations. type: service kind: capability phase: 4 implements: FEATURE-Streaming-Transformations.md covers: IO-003 context: sources/jq-manual.txt, sources/builtin.jq, sources/jq.test context_roles: | jq-manual.txt: normative specification builtin.jq: reference implementation jq.test: conformance suite stack: common.md, python.md provides: tostream, fromstream, truncate_stream consumes: generator evaluator, path operations depends: path-001, core-001, data-001 acceptance: yes scope: target instructions: | Implement jq streaming representations and tostream, fromstream, and truncate_stream over the fixed non-streaming process boundary.
story conf-001
summary: Stage and validate immutable conformance assets. type: foundational kind: test harness phase: 1 implements: FEATURE-Conformance-Asset-Staging.md covers: CONF-001 context: sources/INSTRUCTIONS.md, sources/run_conformance.py, sources/full_test.sh, sources/exclusions.txt, sources/jq.test, sources/jq-manual.txt, sources/parser.y, sources/lexer.l, sources/builtin.jq context_roles: | INSTRUCTIONS.md: author intent run_conformance.py: conformance harness full_test.sh: conformance harness exclusions.txt: conformance harness jq.test: normative specification and conformance suite jq-manual.txt: normative specification parser.y: normative specification lexer.l: normative specification builtin.jq: reference implementation stack: common.md, python.md provides: staged sources/* assets, parsed corpus and exclusions consumes: acceptance: yes scope: both instructions: | Stage all imported sources byte-for-byte into the build directory under sources/. Validate the corpus and exclusions by importing run_conformance.parse_corpus and apply_exclusions directly. Do not launch the harness and do not modify any supplied source asset.
story conf-002
summary: Provide scoped conformance verification. type: service kind: test harness phase: 5 implements: FEATURE-Scoped-Conformance-Verification.md covers: CONF-002 context: sources/run_conformance.py, sources/jq.test, sources/exclusions.txt context_roles: | run_conformance.py: conformance harness jq.test: conformance suite exclusions.txt: conformance harness stack: common.md, python.md provides: scoped conformance execution contract consumes: executable jq, staged conformance assets depends: exec-003, parse-004, core-004, value-004, flow-006, func-004, path-004, data-004, text-004, io-003, conf-001 acceptance: yes scope: both instructions: | Ensure each implementation story can invoke the supplied runner with a construct-specific --select slice, JQ set to the candidate executable, --json enabled, and assertions on parsed summary state with nonzero selected case count and zero failures/errors.
story conf-003
summary: Pass the complete jq conformance corpus. type: service kind: test harness phase: 6 implements: FEATURE-Complete-Conformance-Verification.md covers: CONF-003 accepts: st-001 context: sources/full_test.sh, sources/run_conformance.py, sources/jq.test, sources/exclusions.txt context_roles: | full_test.sh: conformance harness run_conformance.py: conformance harness jq.test: conformance suite exclusions.txt: conformance harness stack: common.md, python.md provides: complete conformance release verification consumes: executable jq, all interpreter capabilities, staged conformance assets depends: architecture, exec-001, exec-002, exec-003, parse-001, parse-002, parse-003, parse-004, core-001, core-002, core-003, core-004, value-001, value-002, value-003, value-004, flow-001, flow-002, flow-003, flow-004, flow-005, flow-006, func-001, func-002, func-003, func-004, path-001, path-002, path-003, path-004, data-001, data-002, data-003, data-004, text-001, text-002, text-003, text-004, io-001, io-002, io-003, conf-001, conf-002 acceptance: yes scope: both instructions: | Run the supplied sources/full_test.sh as the sole terminal full-suite verification. Require the executable interface check and a zero harness exit status. Do not filter, skip, reinterpret, or edit the scoring assets. === END ARTIFACT === </pblock>