# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.037
.claude/agents/file-sops-api.md
.claude/agents/file-sops-format.md
.claude/agents/file-sops-release-checker.md
.claude/agents/file-sops-test-writer.md
.claude/agents/file-sops-wire.md
.claude/rules/file-sops-rules.md
.claude/settings.json
.claude/skills/file-sops-core/SKILL.md
.claude/skills/getty-perl-core/SKILL.md
.claude/skills/getty-perl-moo/SKILL.md
.claude/skills/getty-perl-release-author-getty/SKILL.md
.claude/skills/kanban-issues-karr-cli/SKILL.md
.claude/skills/perl-release-dist-ini/SKILL.md
.gitignore
CLAUDE.md
Changes
LICENSE
MANIFEST
META.json
META.yml
Makefile.PL
README
cpanfile
dist.ini
docs/adr/0001-mac-key-order-from-order-preserving-reparse.md
docs/adr/0002-value-type-comes-from-the-scalar-not-from-a-pattern.md
docs/adr/0003-value-encoding-is-unconditional-like-the-aad.md
docs/adr/0004-foreign-scalars-are-normalised-where-their-bytes-become-a-value.md
docs/adr/0005-the-json-backend-is-chosen-not-inherited.md
docs/adr/0006-floats-are-emitted-in-a-form-that-parses-back-to-the-same-double.md
docs/adr/0007-the-config-search-starts-at-the-file-not-at-the-working-directory.md
docs/adr/0008-a-leaf-the-emitter-cannot-write-as-what-the-digest-covers-is-refused.md
docs/adr/0009-a-decrypted-float-comes-back-as-a-float.md
docs/adr/0010-extract-returns-a-float-that-prints-all-its-digits.md
docs/adr/0011-a-float-leaf-that-carries-its-own-string-form-is-repaired.md
docs/adr/0012-an-integer-leaf-whose-string-half-disagrees-is-refused.md
docs/adr/0013-a-yaml-spelling-the-go-parser-resolves-differently-is-refused.md
docs/adr/0014-a-negative-zero-reaches-json-as-the-double-itself.md
docs/adr/0015-a-negative-zero-is-a-float-even-when-perl-cached-an-integer-on-it.md
docs/adr/0016-perls-own-boolean-is-a-bool-not-an-int.md
docs/adr/0017-the-foreign-resolution-guard-answers-from-the-emitted-token.md
docs/adr/0018-a-mac-only-encrypted-document-warns-where-it-cannot-refuse.md
docs/adr/0019-a-string-go-resolves-as-a-boolean-is-warned-about-in-both-modes.md
docs/adr/0020-a-json-number-perl-cannot-hold-is-a-float-not-a-string.md
docs/adr/0021-a-json-number-go-cannot-hold-is-a-float-not-a-refusal.md
docs/adr/0022-the-flat-metadata-encoding-is-reproduced-lossy-escape-and-all.md
docs/adr/0023-a-yaml-literal-that-overflows-a-double-is-a-string-not-a-float.md
docs/adr/0024-a-sops-comment-leaf-is-refused-not-read-as-a-value.md
docs/adr/0025-a-document-that-contains-itself-is-refused-not-walked.md
docs/adr/0026-a-plain-yaml-infinity-is-the-float-go-yaml-reads.md
docs/adr/0027-the-alias-budget-is-a-ratio-and-it-is-go-yamls-ratio.md
docs/adr/0028-the-merge-tag-is-dropped-because-the-merge-key-is-an-ordinary-key.md
docs/adr/0029-the-depth-a-walk-refuses-is-the-depth-sops-refuses.md
docs/adr/0030-an-env-value-the-escape-cannot-carry-is-refused-not-written.md
docs/adr/0031-a-non-finite-float-that-carries-go-yamls-own-token-is-written.md
docs/adr/0032-a-scalar-tag-is-dropped-only-where-it-carries-no-type.md
docs/adr/0033-a-multi-document-stream-is-an-arrayref-which-no-document-can-be.md
docs/adr/0034-a-plain-scalar-is-resolved-the-same-way-on-every-parse.md
docs/adr/0035-an-untyped-stores-unencrypted-leaf-is-written-as-the-bytes-the-digest-covers.md
docs/adr/0036-the-order-preserving-reparse-is-asked-of-the-format-handler.md
docs/adr/0037-a-non-finite-float-is-written-as-a-token-or-not-at-all.md
docs/adr/0038-a-resolver-divergence-is-answered-by-whether-sops-reads-back-what-it-wrote.md
docs/adr/0039-a-string-leaf-this-emitter-cannot-quote-stays-refused-and-says-so.md
docs/adr/0040-an-encrypted-slot-carries-a-non-finite-float-because-sops-writes-one.md
docs/adr/0041-a-sops-comment-is-a-leaf-of-its-own-not-a-value-and-not-a-refusal.md
docs/adr/0042-a-typed-metadata-field-is-decoded-where-every-formats-section-arrives.md
docs/adr/0043-a-reference-where-a-string-belongs-is-refused-and-the-text-it-would-hold-is-not.md
docs/adr/0044-the-macs-aad-is-the-timestamp-go-re-formats-not-the-text-the-document-holds.md
docs/adr/0045-an-env-comment-lives-under-the-empty-key-because-that-is-the-path-it-authenticates-under.md
docs/adr/0046-a-document-whose-rule-excludes-an-encrypted-leaf-is-refused-not-written.md
docs/adr/0047-an-ini-comment-lives-in-its-section-because-that-is-the-path-it-authenticates-under.md
docs/adr/0048-a-rule-regex-is-matched-in-re2s-dialect-or-not-at-all.md
docs/adr/0049-a-leaf-is-decrypted-because-the-rule-says-so-not-because-it-looks-encrypted.md
docs/adr/0050-a-plain-lastmodified-is-warned-about-because-only-we-can-still-repair-it.md
docs/adr/0051-a-rule-re2-cannot-compile-matches-nothing-on-the-read-path-and-is-refused-on-the-write-path.md
docs/adr/0052-a-display-form-sops-wrote-into-an-untyped-store-is-refused-because-sops-refuses-it-too.md
docs/adr/0053-a-plaintext-emit-refuses-the-same-non-finite-contradiction-the-mac-covered-paths-refuse.md
docs/adr/0054-a-bare-leading-zero-yaml-integer-is-repaired-to-gos-resolution-on-the-parse-path.md
docs/adr/0055-_path_to_aad-answers-colon-for-an-empty-path-the-document-root.md
docs/adr/0056-a-caller-string-spelling-enc-comment-at-an-excluded-path-is-refused.md
docs/adr/0057-the-last-recursive-walk-outside-soaps-pm-is-silenced-the-survey-gap-closes.md
docs/adr/0058-rotate-stamps-our-version-not-the-document-s.md
docs/adr/0059-an-enc-comment-string-in-a-bucket-slot-is-a-bucket-itself.md
docs/adr/0060-a-mapping-position-yaml-comment-is-dropped-silently-and-the-asymmetry-is-deliberate.md
docs/adr/0061-a-top-level-sops-data-key-is-refused-only-when-the-format-reserves-it.md
docs/adr/0062-a-bare-non-finite-float-in-an-unencrypted-slot-is-written-by-the-carrier-not-refused-here.md
docs/adr/0063-a-mac-mismatch-hint-names-the-bare-negative-zero-sops-writes.md
docs/adr/0064-the-surrogate-pair-divergence-is-accepted-as-a-limit.md
docs/adr/0065-three-re2perl-regex-divergences-are-accepted-as-limits.md
docs/adr/0066-a-pattern-neither-dialect-compiles-is-refused-on-the-read-path-and-that-is-accepted-as-a-limit.md
docs/adr/0067-a-plaintext-comment-in-an-encrypted-slot-is-warned-about-not-silenced.md
docs/adr/0068-file-sops-comment-is-a-moo-class-reversing-adr-0041s-hand-bless.md
docs/adr/0069-a-caller-supplied-integer-sv-in-the-int64-uint64-window-is-refused-and-that-is-accepted-as-a-limit.md
docs/adr/0070-a-scoped-per-scalar-quote-is-feasible-for-the-non-ambiguous-divergent-string-leaves.md
docs/adr/0071-the-plaintext-emitter-quotes-the-same-safe-set-so-it-is-a-faithful-inverse.md
lib/File/SOPS.pm
lib/File/SOPS/Backend/Age.pm
lib/File/SOPS/Comment.pm
lib/File/SOPS/Encrypted.pm
lib/File/SOPS/Format/ENV.pm
lib/File/SOPS/Format/ENV/Ordered.pm
lib/File/SOPS/Format/INI.pm
lib/File/SOPS/Format/JSON.pm
lib/File/SOPS/Format/YAML.pm
lib/File/SOPS/Metadata.pm
lib/File/SOPS/Metadata/Flat.pm
maint/fetch-sops
t/00-load.t
t/01-encrypted.t
t/02-encrypt-decrypt.t
t/03-metadata.t
t/04-interop.t
t/05-format-key-order.t
t/06-wire-format-regressions.t
t/07-mac.t
t/08-encoding.t
t/09-reserved-sops-key.t
t/10-integer-range.t
t/11-api-edges.t
t/12-diagnostics.t
t/13-multidoc-yaml.t
t/14-encryption-rules.t
t/15-rotate.t
t/16-caller-supplied-types.t
t/17-in-place-and-edit.t
t/18-decrypt-determinism.t
t/19-atomic-writes.t
t/20-plaintext-emitter.t
t/21-random-bytes.t
t/22-creation-rules.t
t/23-json-backend.t
t/24-float-precision.t
t/25-blessed-leaf-guard.t
t/26-json-unblessed-ref-guard.t
t/27-encrypted-slot-ref-guard.t
t/28-non-finite-float-refusal.t
t/29-int-leaf-string-half-guard.t
t/30-foreign-resolution-guard.t
t/31-negative-zero-integer-cache.t
t/32-boolean-sentinel.t
t/33-guard-answers-from-the-token.t
t/34-mac-only-encrypted-divergence.t
t/35-string-go-reads-as-boolean.t
t/36-json-wide-integer-becomes-float.t
t/37-json-int64-uint64-window-becomes-float.t
t/38-flat-metadata.t
t/39-yaml-overflow-literal-becomes-a-string.t
t/41-recursive-anchor-refused.t
t/42-yaml-plain-infinity-is-a-float.t
t/43-alias-bomb-refused.t
t/44-yaml-merge-key-tag.t
t/45-deep-document-is-quiet.t
t/46-non-finite-token-is-written.t
t/47-yaml-scalar-type-tags.t
t/48-env-data-value-escape.t
t/49-plain-infinity-survives-the-plaintext-round-trip.t
t/50-flat-store-type-policy.t
t/51-order-preserving-parse-per-format.t
t/52-non-finite-float-survives-the-encrypted-round-trip.t
t/53-a-string-leaf-sops-quotes-is-refused-and-says-why.t
t/54-an-encrypted-non-finite-float-is-written.t
t/55-weakly-decoded-metadata-fields.t
t/56-a-sops-comment-survives-the-round-trip.t
t/57-a-reference-in-a-string-metadata-field-is-refused.t
t/58-lastmodified-is-re-formatted-before-it-is-the-aad.t
t/59-env-format-handler.t
t/60-a-rule-that-excludes-an-encrypted-leaf-is-refused.t
t/61-ini-format-handler.t
t/62-rule-regexes-are-matched-in-re2s-dialect.t
t/63-a-comment-leaf-is-kept-and-the-two-shapes-still-refused.t
t/64-a-plain-lastmodified-is-warned-about-not-refused.t
t/65-a-leaf-is-decrypted-because-the-rule-says-so.t
t/66-a-rule-re2-cannot-compile-is-read-the-way-sops-reads-it.t
t/67-a-display-form-sops-wrote-is-refused-in-both-stores.t
t/68-mac-failure-hints-sops.t
t/68-non-finite-dualvar-emit.t
t/69-a-leading-zero-integer-is-repaired-on-the-parse-path.t
t/70-a-path-to-aad-matches-gos-join.t
t/71-sops-3133-panics-on-type-bytes.t
t/72-caller-enc-comment-string-at-excluded-path-is-refused.t
t/73-ini-comment-bucket-at-excluded-path.t
t/74-a-mapping-position-yaml-comment-is-dropped-silently.t
t/74-flat-format-keeps-its-own-sops-key.t
t/75-bare-negative-zero-mac-mismatch-hints.t
t/76-json-surrogate-pair-key-meets-its-decision.t
t/77-three-re2perl-shapes-measured.t
t/78-should-encrypt-path-rule-order-and-rw.t
t/79-a-pattern-neither-dialect-compiles-is-read-by-sops-and-refused-here.t
t/80-plaintext-comment-carp.t
t/81-the-nine-safe-rows-move-and-nothing-else-does.t
t/82-the-plaintext-emitter-is-a-faithful-inverse.t
t/author-pod-links.t
t/author-pod-syntax.t
t/lib/SopsBin.pm
t/release-changes_has_content.t
