Skip to content

[ACP-HARDEN-230] 汎用private-to-public Evidence export contractを追加する #3662

Description

@ootakazuhiko

Parent: #3655
Depends on: ACP-HARDEN-130, ACP-HARDEN-210, ACP-HARDEN-220
Blocks: #3640
Codex lane: evidence/private-public-export

背景

現行publication-evidence/v1はae-framework自身のbranch protection、npm、Marketplace公開に特化している。Private repository、customer-sensitive project、embargoed security/IP情報から、公開可能なEvidence metadataだけを決定的にexportする汎用contractは存在しない。

Private Matchでは、strict allowlist、status非変換、lifecycle上限、deterministic serialization、source/artifact/Protocol/exporter digest、test-only分離、secret/customer/private path/vulnerability/IP gate、value-free omission log、人間publication approval分離が必要だった。

目的

Private Match固有Schemaをコピーせず、ae-frameworkの汎用Evidence export profile/candidate/bundle contractとして上流化する。

Codex CLI preflight

  • execution-result/human-decision/artifact-ref Issueのmerged contract
  • Assurance Model/Evidence adapters/Contract Catalog
  • publication evidence/release policy
  • security/privacy/license docs
  • dependency/canonical JSON options
  • Context Pack/Boundary Map

Proposed package and contracts

推奨package:

packages/evidence-export / @ae-framework/evidence-export

推奨contracts:

  • private-export-candidate/v1
  • public-evidence-bundle/v1
  • evidence-export-profile/v1
  • evidence-exporter-implementation/v1

Human-decided boundary

  • exporterは自動publicationしない。
  • final publication approvalをagent/CI/exporterが生成しない。
  • execution statusを変更しない。
  • lifecycleはprofileで定めるcandidate/sanitized上限を超えない。
  • secret、credential、customer identifier、private repository locator、internal endpoint、raw vulnerability detail、unpublished invention、patent candidateは原則reject。
  • redactionはprofileで明示したoptional omissionだけ。
  • omission logへ原値、断片、長さ、可逆encoding、原値由来unsalted digestを残さない。
  • public CIはsynthetic/test-only fixtureだけを使用する。

実装タスク

  • candidate、profile、bundle、implementation manifestのclosed Schemaを追加する。
  • input Evidenceにexecution-result/v1とartifact refsを使用し、statusをexact preservationする。
  • human-decision refsをprivacy/security/IP/vulnerability scopeへbindingする。
  • real candidate modeとtest fixture modeをtrusted execution contextで分離する。
  • strict allowlistとEvidence type別configuration contractを実装する。
  • deterministic canonical serializationを採用し、review済みlibrary、version、lock、license、official vectorsを記録する。独自のJCS風実装を作らない。
  • repository-relative staged input、path/symlink/size/UTF-8/duplicate-key境界を実装する。
  • recursive scan、network、subprocess、GitHub API、private checkoutを禁止する。
  • sensitive field-name/value scannerを補助防御として追加し、検出完全性を主張しない。
  • implementation manifestへsource、Schema、profile、lock、runtime requirementをbindingする。
  • review subject digestとpublic-safe review provenanceをbundleへ残す。
  • deterministic export、atomic write、value-free error、no-output-on-rejectを実装する。
  • existing publication-evidence/v1との役割差を文書化する。
  • Contract Catalog、onboarding、[REL-200] Consent済み report-only live external pilotを1 repo / 約5 PRで実施する #3640 pilot runbookへ接続する。

Acceptance criteria

  • 6 execution statusが変更されずにexportされる。
  • test-only bundleをreal publication candidateへ変更できない。
  • secret/customer/private locator/vulnerability/IP fixtureがfail closedになる。
  • identical input/profile/implementationからbyte-identical outputが生成される。
  • behavior-affecting source/Schema/profile/lock変更でimplementation digestが変わる。
  • final publication approvalは常にhuman-only/not-provided状態。
  • rejection時にoutputが残らず、errorに検出値が含まれない。
  • public CIはcommitted synthetic fixture以外を読まない。

Validation

  • Schema self-validation
  • full status matrix
  • positive/negative fixture suite
  • deterministic output x2
  • implementation manifest x2
  • path/symlink/size/strict JSON tests
  • sensitive-content bypass tests
  • review subject mutation tests
  • test-only promotion negative tests
  • pnpm -s run check:schemas
  • pnpm -s run check:doc-consistency
  • pnpm -s run verify:lite

非目標

  • real private repository integration
  • release signing
  • automatic publication
  • legal/patent/vulnerability remediation judgment
  • customer data ingestion

Stop condition

  • Draft PR
  • synthetic-only CI
  • no artifact upload containing export bundles
  • exact-head CI success
  • unresolved review threads 0
  • worktree clean

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:contractsSchemas and contractsassurance-control-planeAgent-neutral assurance control plane roadmapcodex-readyIssue body is structured for Codex CLI executionpriority:p1Important next slicerisk:highHigh risk PR (approval and gate labels required)type:taskImplementation task

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions