Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/NATIVE_DIALOG_DOGFOOD_AUDIT_2026-07-05.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ requires operator approval before doing that. The evidence below proves the MCP
elicitation path and the metadata-only fallback path, and it confirms the
native dialog fallback remains opt-in.

`quality-evidence` records this audit as pending native_dialog_preflight evidence.
It does not complete `native_dialog_approved_dogfood`; only an explicitly
approved local run of
`PROMPT_COACH_NATIVE_DIALOG_APPROVED=1 corepack pnpm
dogfood:mcp-native-dialog-approved` can do that.

## Commands Run

```bash
Expand Down
4 changes: 4 additions & 0 deletions docs/NEXT_BACKLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,10 @@ Decision:
`codex_claude_local_integration_evidence`, while
`native_dialog_approved_dogfood` remains pending until explicit operator
approval exists.
`docs/NATIVE_DIALOG_DOGFOOD_AUDIT_2026-07-05.md` is also shipped as
`native_dialog_preflight` evidence: it proves MCP elicitation and no-dialog
fallback behavior while explicitly refusing to treat that as
`native_dialog_approved_dogfood`.
- PR #478 moved that quality evidence gate onto the installed product CLI. Main
CI run `28753458359` passed Node 22 and Node 24 after merge, so `prompt-coach
quality-evidence --require-complete` is now a current default-branch release
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,9 @@
`codex_claude_local_integration_evidence` while keeping
`native_dialog_approved_dogfood` pending until explicit operator approval
exists.
- `docs/NATIVE_DIALOG_DOGFOOD_AUDIT_2026-07-05.md` is packaged as
`native_dialog_preflight` evidence for MCP elicitation and no-dialog fallback
behavior. It must not be treated as approved native OS dialog dogfood.
- PR #478 proved that installed CLI path on the default branch; main CI run
`28753458359` passed Node 22 and Node 24 after merge, so future agents can use
the product CLI itself to decide whether 9.5 is still blocked before claiming
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
"docs/NPM_PUBLISHING.md",
"docs/PACKAGE_CONTENTS.md",
"docs/PRE_PUBLISH_PRIVACY_AUDIT.md",
"docs/NATIVE_DIALOG_DOGFOOD_AUDIT_2026-07-05.md",
"docs/RELEASE_STABILITY_EVIDENCE_2026-07-06.md",
"docs/LOCAL_95_EVIDENCE_2026-07-06.md",
"docs/PRODUCT_POSITIONING_EVIDENCE_2026-07-06.md",
Expand Down
16 changes: 16 additions & 0 deletions scripts/quality-95-evidence.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ function readCompletedEvidence() {
let uiPatrolEvidence = "";
let uiPatrolReadiness = "";
let codexClaudeEvidence = "";
let nativeDialogAudit = "";
try {
plan = readFileSync(planPath, "utf8");
localEvidence = readFileSync("docs/LOCAL_95_EVIDENCE_2026-07-06.md", "utf8");
Expand Down Expand Up @@ -202,12 +203,14 @@ function readCompletedEvidence() {
"docs/CODEX_CLAUDE_LOCAL_INTEGRATION_EVIDENCE_2026-07-06.md",
"utf8",
);
nativeDialogAudit = readFileSync(nativeDialogAuditPath, "utf8");
} catch {
return {
product_positioning_metadata_alignment: false,
manual_ui_patrol_artifact_evidence: false,
scheduled_ui_patrol_preflight: false,
codex_claude_local_integration_evidence: false,
native_dialog_preflight: false,
web_user_flow_current_main_evidence: false,
privacy_raw_free_regression_sweep: false,
codex_claude_setup_smoke_refresh: false,
Expand Down Expand Up @@ -255,6 +258,13 @@ function readCompletedEvidence() {
codexClaudeEvidence.includes("corepack pnpm dogfood:loop-memory-approval") &&
codexClaudeEvidence.includes("native_dialog_approved_dogfood") &&
codexClaudeEvidence.includes("codex_claude_local_integration_evidence"),
native_dialog_preflight:
nativeDialogAudit.includes("corepack pnpm smoke:mcp-native-dialog") &&
nativeDialogAudit.includes("mcp native dialog preflight passed") &&
nativeDialogAudit.includes("pending native_dialog_preflight evidence") &&
nativeDialogAudit.includes(
"does not complete `native_dialog_approved_dogfood`",
),
web_user_flow_current_main_evidence:
plan.includes("web_user_flow_current_main_evidence") &&
plan.includes("corepack pnpm dogfood:web-user-flow") &&
Expand Down Expand Up @@ -337,6 +347,12 @@ function axisEvidenceCoverage({
) {
satisfied.push("codex_claude_local_integration_evidence");
}
if (
axis.id === "codex_and_claude_code_integration" &&
completedEvidence.native_dialog_preflight
) {
satisfied.push("native_dialog_preflight");
}
if (
[
"local_first_privacy_boundary",
Expand Down
3 changes: 2 additions & 1 deletion src/cli/commands/quality-evidence.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ describe("quality-evidence CLI command", () => {
satisfied_evidence: expect.arrayContaining([
"codex_claude_setup_smoke_refresh",
"codex_claude_local_integration_evidence",
"native_dialog_preflight",
"local_95_evidence_sweep",
]),
remaining_evidence: expect.arrayContaining([
Expand Down Expand Up @@ -176,7 +177,7 @@ describe("quality-evidence CLI command", () => {
"codex_and_claude_code_integration: blocked_external",
);
expect(text).toContain(
"satisfied=codex_claude_setup_smoke_refresh,codex_claude_local_integration_evidence,local_95_evidence_sweep",
"satisfied=codex_claude_setup_smoke_refresh,codex_claude_local_integration_evidence,native_dialog_preflight,local_95_evidence_sweep",
);
expect(text).toContain("remaining=native_dialog_approved_dogfood");
expect(text).toContain("Scorecard review candidates");
Expand Down
30 changes: 30 additions & 0 deletions src/packaging/plugin-files.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -937,6 +937,36 @@ describe("plugin packaging files", () => {
);
});

it("ships native dialog preflight evidence without treating it as approved dogfood", () => {
const packageJson = JSON.parse(
readFileSync(join(process.cwd(), "package.json"), "utf8"),
) as { files: string[] };
const qualityScript = readFileSync(
join(process.cwd(), "scripts/quality-95-evidence.mjs"),
"utf8",
);
const audit = readFileSync(
join(process.cwd(), "docs/NATIVE_DIALOG_DOGFOOD_AUDIT_2026-07-05.md"),
"utf8",
);
const backlog = readFileSync(
join(process.cwd(), "docs/NEXT_BACKLOG.md"),
"utf8",
);

expect(packageJson.files).toContain(
"docs/NATIVE_DIALOG_DOGFOOD_AUDIT_2026-07-05.md",
);
expect(qualityScript).toContain("native_dialog_preflight");
expect(audit).toContain("corepack pnpm smoke:mcp-native-dialog");
expect(audit).toContain("mcp native dialog preflight passed");
expect(audit).toContain("pending native_dialog_preflight evidence");
expect(audit).toContain(
"does not complete `native_dialog_approved_dogfood`",
);
expect(backlog).toContain("native_dialog_preflight");
});

it("ships a repeatable 9.5 quality evidence summary command", () => {
const packageJson = readJson<{
files: string[];
Expand Down
1 change: 1 addition & 0 deletions src/packaging/quality-evidence-script.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ describe("quality 9.5 evidence script", () => {
satisfied_evidence: expect.arrayContaining([
"codex_claude_setup_smoke_refresh",
"codex_claude_local_integration_evidence",
"native_dialog_preflight",
"local_95_evidence_sweep",
]),
remaining_evidence: expect.arrayContaining([
Expand Down
24 changes: 24 additions & 0 deletions tasks/todo.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# 작업 계획

## 2026-07-06 PromptLane Native Dialog Preflight Evidence

- [x] CHECK: Approved native OS dialog dogfood still requires explicit operator
approval, so `native_dialog_approved_dogfood` must stay pending.
- [x] RED: quality evidence CLI/script tests required
`codex_and_claude_code_integration` to include `native_dialog_preflight`
while still keeping `native_dialog_approved_dogfood` and
`scorecard_level_below_9_5` as remaining evidence; packaging tests required
the native dialog audit to ship.
- [x] GREEN: `docs/NATIVE_DIALOG_DOGFOOD_AUDIT_2026-07-05.md` is now packaged
and `quality-evidence` exposes its no-dialog and elicitation proof as
`native_dialog_preflight`.
- [x] EFFECT: agents can see native dialog readiness without confusing it with
operator-approved OS dialog dogfood.

### 판단 기준

- Do not run approved native OS dialog dogfood without explicit operator
approval.
- Do not use no-dialog fallback evidence as a substitute for answered OS dialog
evidence.
- Keep preflight evidence visible so future work waits for the right manual
approval instead of repeating unrelated smoke checks.

## 2026-07-06 PromptLane UI Patrol Schedule Readiness Evidence

- [x] CHECK: The GitHub `ui-patrol` workflow has no successful `schedule` event
Expand Down