diff --git a/.github/instruction-surfaces.json b/.github/instruction-surfaces.json index d18f2562c..08e189797 100644 --- a/.github/instruction-surfaces.json +++ b/.github/instruction-surfaces.json @@ -207,6 +207,18 @@ "review_owner": "z-shell maintainers", "canonical_for": [] }, + { + "id": "decision-0041", + "path": "decisions/0041-zsh-lint-parser-root-module-packaging.md", + "kind": "decision", + "authority": "advisory", + "consumers": ["agent", "human"], + "tasks": ["architecture-decision"], + "file_patterns": ["**"], + "required": false, + "review_owner": "z-shell maintainers", + "canonical_for": [] + }, { "id": "organization-patterns", "path": "PATTERNS.md", diff --git a/decisions/0041-zsh-lint-parser-root-module-packaging.md b/decisions/0041-zsh-lint-parser-root-module-packaging.md new file mode 100644 index 000000000..264e27b2e --- /dev/null +++ b/decisions/0041-zsh-lint-parser-root-module-packaging.md @@ -0,0 +1,56 @@ +# 41. Package the zsh-lint parser fork inside the root Go module + +- **Status:** ACCEPTED +- **Date:** 2026-10-15 +- **Deciders:** ss-o +- **Supersedes:** None +- **Superseded by:** None + +## Context + +[ADR-0030](0030-zsh-lint-parser-fork-trigger-fired.md) selected an in-repository mvdan/sh fork so zsh-lint can fix proven Zsh parser gaps locally. Decision 2 places it under `third_party/mvdan-sh` with a local `replace` directive in `go.mod`. The directory and fork strategy remain useful, but that module arrangement prevents the documented versioned CLI installation: Go rejects the target module's replacement, and a nested module is omitted from the root module's downloadable zip. + +[zsh-lint issue 653](https://github.com/z-shell/zsh-lint/issues/653) owns the install defect. Both `v1.4.0` and baseline commit `e9d1ea142518e4332999dc1da4ce17928bc04f3d` reproduce it with fresh caches. [Source PR 699](https://github.com/z-shell/zsh-lint/pull/699) retains the directory while making its packages part of the root module. Fresh-cache public installation from commit `f1c43fac9c8eadfc914a4af89a1beea11afca891` succeeds, and its parser and analyzer corpus results are unchanged. That unmerged implementation is evidence for this decision, not approval to merge or release it. + +A separately published fork module could also make installation work, but would add an independent module version, release lifecycle and source-publication dependency solely for code retained with the CLI. + +## Decision + +Refine only the module-packaging clause of ADR-0030 decision 2: + +1. Retain the parser fork under `third_party/mvdan-sh`, compiled as packages of the root `github.com/z-shell/zsh-lint` module. Imports between project and fork packages, and within the fork, use `github.com/z-shell/zsh-lint/third_party/mvdan-sh/...`. Do not ship a nested fork `go.mod` or `go.sum`, or require a local module replacement for the CLI's versioned installation. The root module must satisfy Go's versioned-install constraints without caller-local overrides. +2. Keep the upstream BSD-3-Clause license, copyright notices and provenance intact under [ADR-0017's L3 rule](0017-licensing-standard-by-provenance.md). Import normalization is a recorded local packaging change, not a relicense or grammar change. +3. Let the root module own dependencies and tools required by the retained fork packages and tests, including stringer. During an upstream refresh, follow `third_party/mvdan-sh/FORK.md`: copy retained packages without upstream module files, normalize imports, reapply documented local changes, review root dependency/tool resolution and regenerate with the root tools. Routine dependency updates remain under Renovate; parser-source refreshes remain deliberately reviewed changes. +4. Retain upstream tests and Zsh-only changes behind `LangZsh`. Root and fork-directory commands must resolve the same module. Preserve [ADR-0023](0023-zsh-lint-parser-front-end-strategy.md) and ADR-0030's tree-shape, native-oracle, corpus and adapter-removal gates. A module move is not evidence of a parser or lint-rule improvement. +5. Verify the downloadable module includes the parser and license, keep regressions for the module boundary and CLI dependency namespace, and prove fresh-cache versioned installation from the exact published implementation commit. Existing immutable tags remain unchanged. A fix reaches `@latest` only through the class-2 release boundary in [ADR-0007](0007-release-publication-flow.md). + +ADR-0030 decisions 1 and 3 to 5 remain unchanged, as do decision 2's fork location and provenance requirements. Keep ADR-0030 as accepted history rather than silently rewriting its original packaging choice. Acceptance takes effect on main through the maintainer-approved ADR procedure; it does not merge an implementation, publish a release or advance consumer pins. + +## Consequences + +### Positive + +- Versioned Go installation can obtain the CLI and its retained parser in one module download, without a separately published fork. +- Root module checks include the retained fork packages, and one dependency/tool selection governs both project and fork commands. +- The original fork strategy, upstream provenance and behavior gates remain intact. + +### Costs and risks + +- Upstream refreshes must normalize imports and merge required module/tool changes, so blindly copying an upstream tree is unsafe. +- Root dependency resolution applies to fork tests and generators; review selected versions and generated bodies rather than assuming equivalence with the former nested module. +- Formerly nested packages become visible to root checks. Preserve deliberate third-party lint boundaries explicitly while retaining build, vet and test coverage; do not mix inherited upstream lint cleanup into a packaging fix. +- Source-owned guidance must describe the target project's actual module layout. Approving and delivering a changed organization source to generated project consumers remains a separate revision-compatibility step. + +## Alternatives considered + +1. **Publish and version a separate fork module.** Technically viable, but adds a release and availability dependency not needed for this in-repository fork. +2. **Keep the replacement and document source-checkout installation only.** Avoids import migration but abandons the documented versioned Go installation contract instead of repairing it. +3. **Vendor or duplicate the parser elsewhere.** Adds another directory or ownership boundary without improving the existing retained fork's provenance and refresh workflow. + +## References + +- [Organization issue 795](https://github.com/z-shell/.github/issues/795), this scoped proposal and guidance correction. +- [Original fork decision request](https://github.com/z-shell/.github/issues/658) and [acceptance PR](https://github.com/z-shell/.github/pull/659). +- [Source implementation and verification](https://github.com/z-shell/zsh-lint/pull/699), including the public-commit install proof and inconclusive import-only mutation limits. +- [Fork packaging and refresh contract at the tested implementation](https://github.com/z-shell/zsh-lint/blob/f1c43fac9c8eadfc914a4af89a1beea11afca891/third_party/mvdan-sh/FORK.md). +- [ADR drafting and acceptance](../runbooks/adr.md). diff --git a/decisions/README.md b/decisions/README.md index db4caa4ba..21efe18cb 100644 --- a/decisions/README.md +++ b/decisions/README.md @@ -51,3 +51,4 @@ a maintainer moves a record from `PROPOSED` to `ACCEPTED`. | [0038](0038-tool-attribution-preference-and-agent-output-controls.md) | Prefer minimal tool attribution and control agent output | PROPOSED | 2026-10-08 | TBD | | [0039](0039-zi-main-integration-and-signed-milestones.md) | Zi Main Integration and Signed Milestones | ACCEPTED | 2026-10-08 | ss-o | | [0040](0040-central-project-profiles-for-issue-intake.md) | Central Project Profiles for Issue Intake | ACCEPTED | 2026-10-09 | ss-o | +| [0041](0041-zsh-lint-parser-root-module-packaging.md) | Package the zsh-lint parser fork inside the root Go module | ACCEPTED | 2026-10-15 | ss-o | diff --git a/knowledge/domains/tooling/repository-resources.md b/knowledge/domains/tooling/repository-resources.md index 9b2904b19..a19c11810 100644 --- a/knowledge/domains/tooling/repository-resources.md +++ b/knowledge/domains/tooling/repository-resources.md @@ -4,102 +4,103 @@ Select a file for the task described below. Imported files have an editable knowledge owner and a complete native delivery. Referenced files retain their current owner because they are executable contracts, historical records, native capability packages, configuration or supporting assets. This inventory establishes coverage, not semantic accuracy or runtime discovery. -| File | Disposition | Purpose and reading context | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [.gitignore](../../../.gitignore) | referenced | Repository file-discovery boundary; tracked files remain inventoried and ignored local/generated state is outside this public inventory. | -| [decisions/0011-zsh-lint-semantic-analyzer-architecture.md](../../../decisions/0011-zsh-lint-semantic-analyzer-architecture.md) | referenced | Historical decision record or generated decision index; inspect recorded status and supersession before applying it. Preserve numbering and accepted history. | -| [decisions/0023-zsh-lint-parser-front-end-strategy.md](../../../decisions/0023-zsh-lint-parser-front-end-strategy.md) | referenced | Historical decision record or generated decision index; inspect recorded status and supersession before applying it. Preserve numbering and accepted history. | -| [decisions/0030-zsh-lint-parser-fork-trigger-fired.md](../../../decisions/0030-zsh-lint-parser-fork-trigger-fired.md) | referenced | Historical decision record or generated decision index; inspect recorded status and supersession before applying it. Preserve numbering and accepted history. | -| [tools/readme-terminal-demo/.gitattributes](../../../tools/readme-terminal-demo/.gitattributes) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/Dockerfile](../../../tools/readme-terminal-demo/Dockerfile) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/cmd/readme-terminal-demo/main.go](../../../tools/readme-terminal-demo/cmd/readme-terminal-demo/main.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/cmd/readme-terminal-demo/main_test.go](../../../tools/readme-terminal-demo/cmd/readme-terminal-demo/main_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/dependencies.env](../../../tools/readme-terminal-demo/dependencies.env) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/go.mod](../../../tools/readme-terminal-demo/go.mod) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/go.sum](../../../tools/readme-terminal-demo/go.sum) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/failure/failure.go](../../../tools/readme-terminal-demo/internal/failure/failure.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/failure/failure_test.go](../../../tools/readme-terminal-demo/internal/failure/failure_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/limits/limits.go](../../../tools/readme-terminal-demo/internal/limits/limits.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/manifest/decode.go](../../../tools/readme-terminal-demo/internal/manifest/decode.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/manifest/manifest_test.go](../../../tools/readme-terminal-demo/internal/manifest/manifest_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/manifest/model.go](../../../tools/readme-terminal-demo/internal/manifest/model.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/manifest/validate.go](../../../tools/readme-terminal-demo/internal/manifest/validate.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/repopath/open_linux.go](../../../tools/readme-terminal-demo/internal/repopath/open_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/repopath/repopath_test.go](../../../tools/readme-terminal-demo/internal/repopath/repopath_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/repopath/validate.go](../../../tools/readme-terminal-demo/internal/repopath/validate.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/sandbox/exec_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/exec_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/sandbox/fds_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/fds_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/sandbox/landlock_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/landlock_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/sandbox/landlock_syscall_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/landlock_syscall_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/sandbox/launcher_internal_test.go](../../../tools/readme-terminal-demo/internal/sandbox/launcher_internal_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/sandbox/launcher_structure_test.go](../../../tools/readme-terminal-demo/internal/sandbox/launcher_structure_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/sandbox/process_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/process_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/sandbox/sandbox_test.go](../../../tools/readme-terminal-demo/internal/sandbox/sandbox_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/tape/compose.go](../../../tools/readme-terminal-demo/internal/tape/compose.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/tape/parse.go](../../../tools/readme-terminal-demo/internal/tape/parse.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/internal/tape/tape_test.go](../../../tools/readme-terminal-demo/internal/tape/tape_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/manifest.schema.json](../../../tools/readme-terminal-demo/manifest.schema.json) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/scripts/bootstrap-gh.sh](../../../tools/readme-terminal-demo/scripts/bootstrap-gh.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/scripts/bootstrap-gh_test.sh](../../../tools/readme-terminal-demo/scripts/bootstrap-gh_test.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/scripts/in-go-image.sh](../../../tools/readme-terminal-demo/scripts/in-go-image.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/scripts/in-go-image_test.sh](../../../tools/readme-terminal-demo/scripts/in-go-image_test.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/scripts/verify-gh-assets.sh](../../../tools/readme-terminal-demo/scripts/verify-gh-assets.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/scripts/verify-gh-assets_test.sh](../../../tools/readme-terminal-demo/scripts/verify-gh-assets_test.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/scripts/verify-release-assets.sh](../../../tools/readme-terminal-demo/scripts/verify-release-assets.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/scripts/verify-release-assets_test.sh](../../../tools/readme-terminal-demo/scripts/verify-release-assets_test.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/alt-bidi-format-only.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-bidi-format-only.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/alt-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/alt-control-character.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-control-character.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/alt-empty.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-empty.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/alt-format-only.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-format-only.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/alt-multiline.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-multiline.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/alt-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/alt-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/fixtures-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/fixtures-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/fixtures-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/fixtures-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/fixtures-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/fixtures-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/fixtures-wrong-root.yml](../../../tools/readme-terminal-demo/testdata/invalid/fixtures-wrong-root.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/gif-nested-empty-stem.yml](../../../tools/readme-terminal-demo/testdata/invalid/gif-nested-empty-stem.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/gif-wrong-root.yml](../../../tools/readme-terminal-demo/testdata/invalid/gif-wrong-root.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/missing-fixtures.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-fixtures.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/missing-output-gif.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-output-gif.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/missing-output-png.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-output-png.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/missing-outputs.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-outputs.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/missing-readme-alt.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-readme-alt.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/missing-readme-path.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-readme-path.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/missing-readme.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-readme.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/missing-scenario.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-scenario.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/missing-version.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-version.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/output-gif-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-gif-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/output-gif-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-gif-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/output-gif-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-gif-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/output-png-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-png-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/output-png-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-png-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/output-png-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-png-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/png-nested-empty-stem.yml](../../../tools/readme-terminal-demo/testdata/invalid/png-nested-empty-stem.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/png-wrong-extension.yml](../../../tools/readme-terminal-demo/testdata/invalid/png-wrong-extension.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/readme-nested-empty-stem.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-nested-empty-stem.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/readme-path-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-path-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/readme-path-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-path-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/readme-path-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-path-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/readme-wrong-extension.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-wrong-extension.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/readme-wrong-root.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-wrong-root.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/scenario-absolute.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-absolute.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/scenario-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/scenario-dot-dot.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-dot-dot.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/scenario-nested-empty-stem.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-nested-empty-stem.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/scenario-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/scenario-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/scenario-wrong-extension.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-wrong-extension.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/tapes/output-directive.tape](../../../tools/readme-terminal-demo/testdata/invalid/tapes/output-directive.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/tapes/set-directive.tape](../../../tools/readme-terminal-demo/testdata/invalid/tapes/set-directive.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/tapes/source-indirection.tape](../../../tools/readme-terminal-demo/testdata/invalid/tapes/source-indirection.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/tapes/timing-override.tape](../../../tools/readme-terminal-demo/testdata/invalid/tapes/timing-override.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/unknown-key.yml](../../../tools/readme-terminal-demo/testdata/invalid/unknown-key.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/version-2.yml](../../../tools/readme-terminal-demo/testdata/invalid/version-2.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/invalid/version-fractional.yml](../../../tools/readme-terminal-demo/testdata/invalid/version-fractional.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/smoke/readme.tape](../../../tools/readme-terminal-demo/testdata/smoke/readme.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/valid/manifest-minimal.yml](../../../tools/readme-terminal-demo/testdata/valid/manifest-minimal.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/valid/manifest-visible-zwj.yml](../../../tools/readme-terminal-demo/testdata/valid/manifest-visible-zwj.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/valid/tapes/behavior.tape](../../../tools/readme-terminal-demo/testdata/valid/tapes/behavior.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | -| [tools/readme-terminal-demo/testdata/valid/tapes/every-directive.tape](../../../tools/readme-terminal-demo/testdata/valid/tapes/every-directive.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| File | Disposition | Purpose and reading context | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [.gitignore](../../../.gitignore) | referenced | Repository file-discovery boundary; tracked files remain inventoried and ignored local/generated state is outside this public inventory. | +| [decisions/0011-zsh-lint-semantic-analyzer-architecture.md](../../../decisions/0011-zsh-lint-semantic-analyzer-architecture.md) | referenced | Historical decision record or generated decision index; inspect recorded status and supersession before applying it. Preserve numbering and accepted history. | +| [decisions/0023-zsh-lint-parser-front-end-strategy.md](../../../decisions/0023-zsh-lint-parser-front-end-strategy.md) | referenced | Historical decision record or generated decision index; inspect recorded status and supersession before applying it. Preserve numbering and accepted history. | +| [decisions/0030-zsh-lint-parser-fork-trigger-fired.md](../../../decisions/0030-zsh-lint-parser-fork-trigger-fired.md) | referenced | Historical decision record or generated decision index; inspect recorded status and supersession before applying it. Preserve numbering and accepted history. | +| [decisions/0041-zsh-lint-parser-root-module-packaging.md](../../../decisions/0041-zsh-lint-parser-root-module-packaging.md) | referenced | Accepted refinement of ADR-0030's parser-fork module packaging. Fork strategy, licensing and behavior gates remain unchanged; implementation and consumer delivery are separate steps. | +| [tools/readme-terminal-demo/.gitattributes](../../../tools/readme-terminal-demo/.gitattributes) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/Dockerfile](../../../tools/readme-terminal-demo/Dockerfile) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/cmd/readme-terminal-demo/main.go](../../../tools/readme-terminal-demo/cmd/readme-terminal-demo/main.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/cmd/readme-terminal-demo/main_test.go](../../../tools/readme-terminal-demo/cmd/readme-terminal-demo/main_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/dependencies.env](../../../tools/readme-terminal-demo/dependencies.env) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/go.mod](../../../tools/readme-terminal-demo/go.mod) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/go.sum](../../../tools/readme-terminal-demo/go.sum) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/failure/failure.go](../../../tools/readme-terminal-demo/internal/failure/failure.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/failure/failure_test.go](../../../tools/readme-terminal-demo/internal/failure/failure_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/limits/limits.go](../../../tools/readme-terminal-demo/internal/limits/limits.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/manifest/decode.go](../../../tools/readme-terminal-demo/internal/manifest/decode.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/manifest/manifest_test.go](../../../tools/readme-terminal-demo/internal/manifest/manifest_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/manifest/model.go](../../../tools/readme-terminal-demo/internal/manifest/model.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/manifest/validate.go](../../../tools/readme-terminal-demo/internal/manifest/validate.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/repopath/open_linux.go](../../../tools/readme-terminal-demo/internal/repopath/open_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/repopath/repopath_test.go](../../../tools/readme-terminal-demo/internal/repopath/repopath_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/repopath/validate.go](../../../tools/readme-terminal-demo/internal/repopath/validate.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/sandbox/exec_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/exec_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/sandbox/fds_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/fds_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/sandbox/landlock_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/landlock_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/sandbox/landlock_syscall_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/landlock_syscall_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/sandbox/launcher_internal_test.go](../../../tools/readme-terminal-demo/internal/sandbox/launcher_internal_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/sandbox/launcher_structure_test.go](../../../tools/readme-terminal-demo/internal/sandbox/launcher_structure_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/sandbox/process_linux.go](../../../tools/readme-terminal-demo/internal/sandbox/process_linux.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/sandbox/sandbox_test.go](../../../tools/readme-terminal-demo/internal/sandbox/sandbox_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/tape/compose.go](../../../tools/readme-terminal-demo/internal/tape/compose.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/tape/parse.go](../../../tools/readme-terminal-demo/internal/tape/parse.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/internal/tape/tape_test.go](../../../tools/readme-terminal-demo/internal/tape/tape_test.go) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/manifest.schema.json](../../../tools/readme-terminal-demo/manifest.schema.json) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/scripts/bootstrap-gh.sh](../../../tools/readme-terminal-demo/scripts/bootstrap-gh.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/scripts/bootstrap-gh_test.sh](../../../tools/readme-terminal-demo/scripts/bootstrap-gh_test.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/scripts/in-go-image.sh](../../../tools/readme-terminal-demo/scripts/in-go-image.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/scripts/in-go-image_test.sh](../../../tools/readme-terminal-demo/scripts/in-go-image_test.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/scripts/verify-gh-assets.sh](../../../tools/readme-terminal-demo/scripts/verify-gh-assets.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/scripts/verify-gh-assets_test.sh](../../../tools/readme-terminal-demo/scripts/verify-gh-assets_test.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/scripts/verify-release-assets.sh](../../../tools/readme-terminal-demo/scripts/verify-release-assets.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/scripts/verify-release-assets_test.sh](../../../tools/readme-terminal-demo/scripts/verify-release-assets_test.sh) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/alt-bidi-format-only.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-bidi-format-only.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/alt-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/alt-control-character.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-control-character.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/alt-empty.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-empty.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/alt-format-only.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-format-only.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/alt-multiline.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-multiline.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/alt-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/alt-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/alt-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/fixtures-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/fixtures-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/fixtures-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/fixtures-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/fixtures-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/fixtures-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/fixtures-wrong-root.yml](../../../tools/readme-terminal-demo/testdata/invalid/fixtures-wrong-root.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/gif-nested-empty-stem.yml](../../../tools/readme-terminal-demo/testdata/invalid/gif-nested-empty-stem.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/gif-wrong-root.yml](../../../tools/readme-terminal-demo/testdata/invalid/gif-wrong-root.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/missing-fixtures.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-fixtures.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/missing-output-gif.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-output-gif.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/missing-output-png.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-output-png.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/missing-outputs.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-outputs.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/missing-readme-alt.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-readme-alt.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/missing-readme-path.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-readme-path.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/missing-readme.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-readme.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/missing-scenario.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-scenario.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/missing-version.yml](../../../tools/readme-terminal-demo/testdata/invalid/missing-version.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/output-gif-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-gif-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/output-gif-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-gif-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/output-gif-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-gif-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/output-png-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-png-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/output-png-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-png-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/output-png-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/output-png-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/png-nested-empty-stem.yml](../../../tools/readme-terminal-demo/testdata/invalid/png-nested-empty-stem.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/png-wrong-extension.yml](../../../tools/readme-terminal-demo/testdata/invalid/png-wrong-extension.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/readme-nested-empty-stem.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-nested-empty-stem.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/readme-path-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-path-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/readme-path-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-path-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/readme-path-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-path-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/readme-wrong-extension.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-wrong-extension.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/readme-wrong-root.yml](../../../tools/readme-terminal-demo/testdata/invalid/readme-wrong-root.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/scenario-absolute.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-absolute.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/scenario-bool.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-bool.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/scenario-dot-dot.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-dot-dot.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/scenario-nested-empty-stem.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-nested-empty-stem.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/scenario-null.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-null.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/scenario-number.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-number.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/scenario-wrong-extension.yml](../../../tools/readme-terminal-demo/testdata/invalid/scenario-wrong-extension.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/tapes/output-directive.tape](../../../tools/readme-terminal-demo/testdata/invalid/tapes/output-directive.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/tapes/set-directive.tape](../../../tools/readme-terminal-demo/testdata/invalid/tapes/set-directive.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/tapes/source-indirection.tape](../../../tools/readme-terminal-demo/testdata/invalid/tapes/source-indirection.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/tapes/timing-override.tape](../../../tools/readme-terminal-demo/testdata/invalid/tapes/timing-override.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/unknown-key.yml](../../../tools/readme-terminal-demo/testdata/invalid/unknown-key.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/version-2.yml](../../../tools/readme-terminal-demo/testdata/invalid/version-2.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/invalid/version-fractional.yml](../../../tools/readme-terminal-demo/testdata/invalid/version-fractional.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/smoke/readme.tape](../../../tools/readme-terminal-demo/testdata/smoke/readme.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/valid/manifest-minimal.yml](../../../tools/readme-terminal-demo/testdata/valid/manifest-minimal.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/valid/manifest-visible-zwj.yml](../../../tools/readme-terminal-demo/testdata/valid/manifest-visible-zwj.yml) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/valid/tapes/behavior.tape](../../../tools/readme-terminal-demo/testdata/valid/tapes/behavior.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | +| [tools/readme-terminal-demo/testdata/valid/tapes/every-directive.tape](../../../tools/readme-terminal-demo/testdata/valid/tapes/every-directive.tape) | referenced | Terminal-demo implementation, build contract, regression test or fixture. Retained as source-coupled tool material; no abandonment or deletion is implied. | diff --git a/knowledge/domains/tooling/zsh-lint-parser-front-end.md b/knowledge/domains/tooling/zsh-lint-parser-front-end.md index 610500c13..1641a083a 100644 --- a/knowledge/domains/tooling/zsh-lint-parser-front-end.md +++ b/knowledge/domains/tooling/zsh-lint-parser-front-end.md @@ -7,7 +7,7 @@ applyTo: "internal/parse/**,internal/survey/**,cmd/zsh-lint-survey/**" This organization source supplies complete native project guidance through the approved records in `knowledge/project-delivery.json`. Edit the organization source, then publish and approve its revision before regenerating a project consumer; the generated consumer is not independently editable. Project instructions retain their existing authoring ownership until approved source publication, complete delivery and compatibility checks pass. Reconciled against project revision `7ff05091a5489becf32069db1738d38ec23c8fd5`; repository-relative code, command and fixture paths below refer to that project. -`internal/parse` wraps `mvdan.cc/sh/v3/syntax` in its Zsh dialect and closes proven valid-Zsh gaps with local compatibility adapters. +`internal/parse` wraps the in-repository mvdan/sh fork's `syntax` package in its Zsh dialect and closes proven valid-Zsh gaps with local compatibility adapters. Resolve the import prefix from the target project revision's `go.mod` and `third_party/mvdan-sh/FORK.md`, rather than assuming the upstream module namespace. The contract is in [`docs/project/parser-gap-workflow.md`](https://github.com/z-shell/zsh-lint/blob/7ff05091a5489becf32069db1738d38ec23c8fd5/docs/project/parser-gap-workflow.md); this file only routes you there and names the invariants that reviews check. ## Before changing anything diff --git a/knowledge/repository-files.json b/knowledge/repository-files.json index 0ef243e1e..bb45d0414 100644 --- a/knowledge/repository-files.json +++ b/knowledge/repository-files.json @@ -1135,6 +1135,13 @@ "knowledge": "knowledge/domains/governance/repository-resources.md", "reason": "Accepted project profile and issue-intake decision; read with ADR-0031 for the routing block it extends." }, + { + "path": "decisions/0041-zsh-lint-parser-root-module-packaging.md", + "domain": "tooling", + "disposition": "referenced", + "knowledge": "knowledge/domains/tooling/repository-resources.md", + "reason": "Accepted refinement of ADR-0030's parser-fork module packaging. Fork strategy, licensing and behavior gates remain unchanged; implementation and consumer delivery are separate steps." + }, { "path": "decisions/README.md", "domain": "governance",