You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implementation Ready freezes the accepted behavior, reproduction boundary, impact, scope,
acceptance criteria, Quality Plan, and delivery target. A wording-only correction may retain the
version but still requires a new readiness validation and fingerprint. A semantic change increments
the version, returns the issue to status: new, and requires a new successful readiness validation.
Record actual implementation, verification, and audit evidence in pull requests or issue comments.
Affected platforms and environments: GitHub-hosted macos-26 arm64 image 20260728.0273.1, macOS 26.5.2 build 25F84. Both failing and passing evidence used this exact
image/version in the same Azure region; the worker identity and source head differed.
Observable behavior: The old exact head was rejected twice as package-redaction:Contents/MacOS/keiko-native-desktop. A new diagnostic head on the same hosted
image passed package and packaged-shell acceptance. The old diagnostic exposed no denied class or
matched value, and the rejected artifact was not retained.
Accepted or expected behavior and authority: Productive macOS package binaries remain free of
denied sensitive data and environment-specific paths. Package scanning continues to fail closed.
A rejection identifies only a bounded repository-owned redaction class and artifact path, never
the matched value. Diagnosis must distinguish a real build-host leak from a binary-scan false
positive or head-sensitive/intermittent artifact before any owning build-layer remediation is
authorized.
User, enterprise, security, or operational impact: An opaque fail-closed rejection can block
unrelated exact-head delivery to dev. Guessing or weakening the scan would risk publishing
sensitive data or masking binary false positives.
Severity and rationale: high delivery and package-integrity impact with correct fail-closed
enforcement, contradictory reproduction evidence, and no evidence that a rejected artifact was
released.
Affected acceptance journey and checkpoint: Not applicable — package integrity and CI
diagnostics have no desktop interaction surface.
Do not include customer data, credentials, private endpoints, raw logs, prompts, or sensitive
screenshots. Link only to evidence that satisfies repository redaction and retention policy.
Reproduction contract
Preconditions and sanitized fixture: Clean checkout, Node.js 24.18.x, npm 11.16.x, pinned Rust
toolchains, and GitHub-hosted macos-26 image 20260728.0273.1.
Expected result: Every build emits a redaction-clean package; a deliberately contaminated fixture
is rejected with a bounded class and without the matched value.
Reproduction stability: intermittent/head-sensitive with measured evidence — 2/2 failures on
the old exact head and 2/2 passes on the diagnostic exact head; no current-head recurrence was
observed in the provider-supported matrix.
Smallest known affected boundary: Final executable package-byte redaction scan; the rejected class
and its producing layer are unconfirmed.
User-visible failure and recovery path: Not applicable — recovery requires evidence-backed clean
rebuild or owning-layer correction, never a scan bypass or runner-image rollback.
This issue is limited to evidence-driven diagnosis plus safe diagnostic hardening until a denied
class and owning producer are confirmed. It does not assert an environment leak, binary false
positive, or production fix without evidence.
Scope
In scope: Failure-first hermetic fixtures for every denied class and hosted-runner-sensitive
binary content; bounded redaction-class diagnostics that never expose matched values; one additional
exact-head macOS 26 rerun on the accepted diagnostic head; classification of
recurrence or bounded non-reproduction; owning-layer remediation only after the denied class and
producer are confirmed; preservation of every denial; and physical-owner plus supported macOS
14/26 proof.
Out of scope: Weakening, suppressing, skipping, or deleting package redaction; exposing or
retaining matched values; pinning or rolling back a hosted runner image; changing
supported-platform policy; speculative native/build fixes; native product behavior; lifecycle or
ADR changes; dependencies or lockfiles; workflow topology, permissions, branch protection, or
repository settings.
Suspected owning module or domain: quality/native-contract.mjs package-byte classification and
diagnostics. quality/native-process.mjs productive Rust environment becomes an authorized fix
owner only if bounded evidence confirms a build-host class produced there.
Trust boundaries, data classes, or privileged effects involved: Build-host filesystem paths,
emails, endpoints, credential-shaped content, private-key markers, executable package bytes, CI
logs, and release artifacts.
The repository-wide defaults in AGENTS.md apply and are not repeated here.
Authorized repository: oscharko-dev/Keiko-Native
Exact delivery target: dev
Allowed write scope: quality/native-process.mjs, quality/native-process.test.mjs, quality/native-contract.mjs, quality/native-package.mjs, and quality/native-package-contract.test.mjs
Additional prohibited paths or actions: No workflow, native/product source, dependency,
lockfile, lifecycle, ADR, permission, branch-protection, repository-setting, supported-runner,
signing-policy, or unrelated quality-gate change. Never log, upload, comment, or persist a raw
matched value.
Authorized external mutations: Issue and pull-request planning/evidence comments; read-only
GitHub run/job inspection; ordinary draft pull-request checks; and one explicit rerun of
the exact accepted diagnostic head's macOS 26 job to settle measured recurrence. No other rerun,
label/status mutation beyond this issue's accepted lifecycle requests, queue, auto-merge, merge, dev update, or repository-setting effect by the implementation agent.
Required credentials or secrets: Existing authenticated maintainer environment for read-only
GitHub evidence and ordinary branch/PR publication; credentials are never inspected, printed,
copied, or persisted.
Delivery authority: human-only manual merge to dev
Additional stop or escalation conditions: Stop if recurrence identifies an owning production path
outside the allowed write scope, if a fix requires a workflow/dependency/platform-policy change,
if diagnostics cannot remain value-free, if any denial must be weakened, if measured evidence
remains ambiguous after the bounded matrix, or if the current contract version lacks an exact
accepted readiness record.
The executing agent chooses a dedicated source branch using its own runner prefix. It must include
the issue number, remain unique to this issue, and be recorded in the pull request. An agent must
never merge, enable auto-merge, enqueue, push, or update dev.
Quality Plan
Applicable Code Quality Standard sections: Correctness and contracts; failure and recovery;
security and privacy; observability and evidence; bounded resources; deterministic build and
package behavior; machine acceptance; regression testing.
Failure-first regression evidence required: A fixture at the real package-validation seam embeds
representative content for each denied class and proves the previous rejection lacked an
actionable bounded class; the corrected fixture remains rejected, identifies only the class, and
contains no raw matched value in captured diagnostics.
Positive, negative, boundary, hostile, unauthorized, unavailable, cancellation, partial-failure,
and recovery paths to cover: Clean binary; every denied class; overlapping classes; plain and
algorithm-prefixed private-key markers; empty and malformed artifact; binary bytes; hostile
newline/control content; unavailable package path; scan failure; value-free diagnostic capture;
and clean rebuild evidence. Cancellation and authorization are excluded because the bounded
package subprocess performs no network or privileged external mutation.
Required unit, contract, architecture, integration, production-composition, and end-to-end tests:
Focused native process/package contract tests, complete local quality suite, physical macOS 26
owner package command, one original exact-head macOS 14/26 run, and one authorized
macOS 26 job rerun on the diagnostic exact head.
Required security, accessibility, performance, resource, visual, platform, or manual evidence:
Independent redaction/privacy audit; supported macOS evidence; signed exact-head checks; bounded
recurrence matrix with exact image/worker/run facts. Accessibility, visual, and interactive
journey evidence are excluded because no user-facing surface changes.
Explicit exclusions with rationale: No product/native behavior, UI, dependency, workflow, release
signing, or lifecycle change; the defect is confined to evidence-driven package-byte diagnosis
and value-free diagnostics unless a producing owner is proven.
Acceptance criteria
AC1 — Failure-first fixtures at the production package-validation seam prove every denied
class remains rejected; diagnostics name only fixed bounded classes and artifact paths and never
contain matched values.
AC2 — A bounded two-run diagnostic-head macOS 26 matrix is recorded on the exact hosted
image. If a failure recurs, its bounded class and producer are confirmed and fixed at the owning
layer. If both runs pass, the old rejection is settled as head-sensitive/non-reproducible
within the measured matrix and no speculative build-layer fix is made.
AC3 — Malformed, hostile, unavailable, overlapping-class, plain private-key, and clean package
cases remain deterministic and fail closed where applicable; no regex, gate, trust boundary, or
supported platform is weakened or bypassed.
AC4 — Focused tests, complete local green bar, physical-owner package proof, signed exact-head
macOS 14/26 checks, independent privacy audit, and zero unresolved review conversations establish
the bounded outcome without unrelated changes.
Verification commands
node --test quality/native-process.test.mjs quality/native-package-contract.test.mjs
npm ci --ignore-scripts
npm run native:package
npm run quality
npm audit --audit-level=high
Lifecycle contract: docs/qa/issue-lifecycle.md.
Parent Epic: None
Planning contract
v3Implementation Readyfreezes the accepted behavior, reproduction boundary, impact, scope,acceptance criteria, Quality Plan, and delivery target. A wording-only correction may retain the
version but still requires a new readiness validation and fingerprint. A semantic change increments
the version, returns the issue to
status: new, and requires a new successful readiness validation.Record actual implementation, verification, and audit evidence in pull requests or issue comments.
Finding and accepted behavior
production evidence30628501076, failed macOS 26 jobs91149186697(attempt 1) and91153812842(attempt 2); PR fix(quality): diagnose macOS 26 package redaction (#149) #150 CI run30635296068,successful macOS 26 jobs
91171250362(original) and91180784764(authorized rerun); last known greendevrun30625975050, macOS 26 job91141217058.7f6f34c0a0f37800bcd613d5b3de71f2eb95308bproduced two rejectedKeiko Native.app/Contents/MacOS/keiko-native-desktopartifacts. PR fix(quality): diagnose macOS 26 package redaction (#149) #150 signed diagnostic headd5e92d308f644a96d96b1ca1d42cd1f4cec05295produced a clean package and acceptance artifact.macos-26arm64 image20260728.0273.1, macOS 26.5.2 build25F84. Both failing and passing evidence used this exactimage/version in the same Azure region; the worker identity and source head differed.
package-redaction:Contents/MacOS/keiko-native-desktop. A new diagnostic head on the same hostedimage passed package and packaged-shell acceptance. The old diagnostic exposed no denied class or
matched value, and the rejected artifact was not retained.
denied sensitive data and environment-specific paths. Package scanning continues to fail closed.
A rejection identifies only a bounded repository-owned redaction class and artifact path, never
the matched value. Diagnosis must distinguish a real build-host leak from a binary-scan false
positive or head-sensitive/intermittent artifact before any owning build-layer remediation is
authorized.
unrelated exact-head delivery to
dev. Guessing or weakening the scan would risk publishingsensitive data or masking binary false positives.
highdelivery and package-integrity impact with correct fail-closedenforcement, contradictory reproduction evidence, and no evidence that a rejected artifact was
released.
Not applicable— package integrity and CIdiagnostics have no desktop interaction surface.
Do not include customer data, credentials, private endpoints, raw logs, prompts, or sensitive
screenshots. Link only to evidence that satisfies repository redaction and retention policy.
Reproduction contract
toolchains, and GitHub-hosted
macos-26image20260728.0273.1.npm ci --ignore-scripts.npm run native:package.Keiko Native.app/Contents/MacOS/keiko-native-desktop.attempt; never record the matched value.
npm ci --ignore-scripts && npm run native:packagererun on the exact same image/version, completing package and packaged-shell acceptance twice.
is rejected with a bounded class and without the matched value.
intermittent/head-sensitive with measured evidence— 2/2 failures onthe old exact head and 2/2 passes on the diagnostic exact head; no current-head recurrence was
observed in the provider-supported matrix.
and its producing layer are unconfirmed.
macos-14was green; PR fix(quality): diagnose macOS 26 package redaction (#149) #150 macOS 14 and macOS 26 package and acceptance lanes are green.Not applicable— recovery requires evidence-backed cleanrebuild or owning-layer correction, never a scan bypass or runner-image rollback.
This issue is limited to evidence-driven diagnosis plus safe diagnostic hardening until a denied
class and owning producer are confirmed. It does not assert an environment leak, binary false
positive, or production fix without evidence.
Scope
binary content; bounded redaction-class diagnostics that never expose matched values; one additional
exact-head macOS 26 rerun on the accepted diagnostic head; classification of
recurrence or bounded non-reproduction; owning-layer remediation only after the denied class and
producer are confirmed; preservation of every denial; and physical-owner plus supported macOS
14/26 proof.
retaining matched values; pinning or rolling back a hosted runner image; changing
supported-platform policy; speculative native/build fixes; native product behavior; lifecycle or
ADR changes; dependencies or lockfiles; workflow topology, permissions, branch protection, or
repository settings.
quality/native-contract.mjspackage-byte classification anddiagnostics.
quality/native-process.mjsproductive Rust environment becomes an authorized fixowner only if bounded evidence confirms a build-host class produced there.
emails, endpoints, credential-shaped content, private-key markers, executable package bytes, CI
logs, and release artifacts.
macOS 14/26 clean-checkout packageability, package structure, signing inputs, strict redaction
classes, diagnostics redaction, and unrelated native behavior.
Execution Authority
The repository-wide defaults in
AGENTS.mdapply and are not repeated here.oscharko-dev/Keiko-Nativedevquality/native-process.mjs,quality/native-process.test.mjs,quality/native-contract.mjs,quality/native-package.mjs, andquality/native-package-contract.test.mjslockfile, lifecycle, ADR, permission, branch-protection, repository-setting, supported-runner,
signing-policy, or unrelated quality-gate change. Never log, upload, comment, or persist a raw
matched value.
GitHub run/job inspection; ordinary draft pull-request checks; and one explicit rerun of
the exact accepted diagnostic head's macOS 26 job to settle measured recurrence. No other rerun,
label/status mutation beyond this issue's accepted lifecycle requests, queue, auto-merge, merge,
devupdate, or repository-setting effect by the implementation agent.GitHub evidence and ordinary branch/PR publication; credentials are never inspected, printed,
copied, or persisted.
human-only manual merge to devoutside the allowed write scope, if a fix requires a workflow/dependency/platform-policy change,
if diagnostics cannot remain value-free, if any denial must be weakened, if measured evidence
remains ambiguous after the bounded matrix, or if the current contract version lacks an exact
accepted readiness record.
The executing agent chooses a dedicated source branch using its own runner prefix. It must include
the issue number, remain unique to this issue, and be recorded in the pull request. An agent must
never merge, enable auto-merge, enqueue, push, or update
dev.Quality Plan
security and privacy; observability and evidence; bounded resources; deterministic build and
package behavior; machine acceptance; regression testing.
representative content for each denied class and proves the previous rejection lacked an
actionable bounded class; the corrected fixture remains rejected, identifies only the class, and
contains no raw matched value in captured diagnostics.
and recovery paths to cover: Clean binary; every denied class; overlapping classes; plain and
algorithm-prefixed private-key markers; empty and malformed artifact; binary bytes; hostile
newline/control content; unavailable package path; scan failure; value-free diagnostic capture;
and clean rebuild evidence. Cancellation and authorization are excluded because the bounded
package subprocess performs no network or privileged external mutation.
Focused native process/package contract tests, complete local quality suite, physical macOS 26
owner package command, one original exact-head macOS 14/26 run, and one authorized
macOS 26 job rerun on the diagnostic exact head.
Independent redaction/privacy audit; supported macOS evidence; signed exact-head checks; bounded
recurrence matrix with exact image/worker/run facts. Accessibility, visual, and interactive
journey evidence are excluded because no user-facing surface changes.
signing, or lifecycle change; the defect is confined to evidence-driven package-byte diagnosis
and value-free diagnostics unless a producing owner is proven.
Acceptance criteria
class remains rejected; diagnostics name only fixed bounded classes and artifact paths and never
contain matched values.
image. If a failure recurs, its bounded class and producer are confirmed and fixed at the owning
layer. If both runs pass, the old rejection is settled as head-sensitive/non-reproducible
within the measured matrix and no speculative build-layer fix is made.
cases remain deterministic and fail closed where applicable; no regex, gate, trust boundary, or
supported platform is weakened or bypassed.
macOS 14/26 checks, independent privacy audit, and zero unresolved review conversations establish
the bounded outcome without unrelated changes.
Verification commands
Audit plan
regex-on-binary behavior, false-positive risk, path normalization, package scan completeness,
hostile fixtures, supported-platform parity, deterministic outputs, and scope containment.
Cargo/Rust path remapping, subprocess environment inheritance, executable build, package assembly,
recursive package scan, redaction classification, binary boundary behavior, and error
serialization.
image/worker/run recurrence matrix; focused and complete local green bar; physical-owner package;
exact-head macOS 14/26 checks; independent audit; zero unresolved findings.
Definition of Ready
complete.
Completion and review settlement
Stop conditions
behavior.
mutation.