fix(qa-evidence,observer): reject placeholder metadata and replay-only learning; declare the docs atomic-write target

- materialize measures revision, runtime and cwd itself and rejects supplied
  values that differ (CI run wrote revision "HEAD" and runtime "bun"), and
  refuses learning checkpoints that replay the same probe, naming the fix.
- The docs write observer treats Claude Code's atomic temp for the authorized
  doc target as transient, so a temp renamed before its per-file watch no
  longer marks the observation incomplete (ship-docsync-completion flake).
  Per-file monitoring outside declared targets stays fail-closed.
This commit is contained in:
garrytan committed 2026-09-30 18:24:46 +00:00
1 parent 131d43be0a
commit 1643cd94de
5 files changed
+50 -12

No files matched your search

+1 -1
View File
@@ -8,7 +8,7 @@ import { DOC_PATH, type DocsScenario, type fixtureDocs } from './docsync-fixture
import { sliceBetween } from './skill-fixture';
export async function observeDocsWrites(fixture: ReturnType<typeof fixtureDocs>) {
return observeQAWrites(fixture.repo);
return observeQAWrites(fixture.repo, { atomicTargets: [DOC_PATH] });
}
type DocsWriteContext = {