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
5 changes: 5 additions & 0 deletions docs/NEXT_BACKLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,11 @@ Decision:
`product_positioning_metadata_alignment`.
Codex/Claude operator dogfood, web operations, scheduled `ui-patrol`, and
native-dialog approved dogfood remain pending.
`docs/UI_PATROL_EVIDENCE_2026-07-06.md` records the current manual
workflow_dispatch artifact, local `corepack pnpm ui-patrol`, and
`dogfood:web-user-flow` browser evidence. `quality-evidence` records this as
`manual_ui_patrol_artifact_evidence`, but `scheduled_ui_patrol` remains
pending until a real cron `schedule` event exists.
- 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
29 changes: 29 additions & 0 deletions docs/UI_PATROL_EVIDENCE_2026-07-06.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# PromptLane UI Patrol Evidence 2026-07-06

This document records current UI patrol evidence for the PromptLane web
operations 9.5 quality bar.

## Manual And Local Evidence

| Evidence | Result | Details |
| --- | --- | --- |
| GitHub workflow_dispatch run `28717406758` | PASS | Uploaded the `ui-patrol-screenshots` artifact with 9 png files. |
| Local `corepack pnpm ui-patrol` | PASS | Captured 9 png files for archive, detail, dashboard, coach, projects, MCP, exports, settings desktop, and settings mobile. |
| `corepack pnpm dogfood:web-user-flow` | PASS | Completed the archive/detail/dashboard/coach/projects/mcp/exports/settings/mobile browser flow with `browser e2e passed`. |

## Remaining Scheduled Evidence

This evidence does not complete the scheduled `ui-patrol` blocker.

`corepack pnpm evidence:ui-patrol` still reports
`pending_no_schedule_run` because the current workflow history has no real
`schedule` event. The checker must continue to require a scheduled run with a
`ui-patrol-screenshots` artifact containing 9 png files before returning
`complete`.

## Interpretation

The web operations axis has current manual and local browser evidence, but it
remains blocked externally until the scheduled cron event exists. `quality-evidence`
records the proven non-scheduled portion as `manual_ui_patrol_artifact_evidence`
and keeps `scheduled_ui_patrol` in remaining evidence.
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,12 @@
while keeping `prompt-coach` as the compatibility runtime ID.
`quality-evidence` records this as
`product_positioning_metadata_alignment`.
- `docs/UI_PATROL_EVIDENCE_2026-07-06.md` records current non-scheduled web
operations evidence: workflow_dispatch run `28717406758`, the
`ui-patrol-screenshots` artifact with 9 png files, local
`corepack pnpm ui-patrol`, and `dogfood:web-user-flow`. `quality-evidence`
records this as `manual_ui_patrol_artifact_evidence` while keeping
`scheduled_ui_patrol` pending until a real cron `schedule` event exists.
- 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 @@ -66,6 +66,7 @@
"docs/RELEASE_STABILITY_EVIDENCE_2026-07-06.md",
"docs/LOCAL_95_EVIDENCE_2026-07-06.md",
"docs/PRODUCT_POSITIONING_EVIDENCE_2026-07-06.md",
"docs/UI_PATROL_EVIDENCE_2026-07-06.md",
"docs/RELEASE_CHECKLIST.md",
"plugins",
"integrations",
Expand Down
19 changes: 19 additions & 0 deletions scripts/quality-95-evidence.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ function readCompletedEvidence() {
let codexPlugin = "";
let claudePlugin = "";
let claudeMarketplace = "";
let uiPatrolEvidence = "";
try {
plan = readFileSync(planPath, "utf8");
localEvidence = readFileSync("docs/LOCAL_95_EVIDENCE_2026-07-06.md", "utf8");
Expand All @@ -187,9 +188,14 @@ function readCompletedEvidence() {
);
claudePlugin = readFileSync(".claude-plugin/plugin.json", "utf8");
claudeMarketplace = readFileSync(".claude-plugin/marketplace.json", "utf8");
uiPatrolEvidence = readFileSync(
"docs/UI_PATROL_EVIDENCE_2026-07-06.md",
"utf8",
);
} catch {
return {
product_positioning_metadata_alignment: false,
manual_ui_patrol_artifact_evidence: false,
web_user_flow_current_main_evidence: false,
privacy_raw_free_regression_sweep: false,
codex_claude_setup_smoke_refresh: false,
Expand All @@ -215,6 +221,13 @@ function readCompletedEvidence() {
codexPlugin.includes("loop-aware continuation") &&
claudePlugin.includes("PromptLane is a local-first prompt improvement workspace") &&
claudeMarketplace.includes("PromptLane is a local-first prompt improvement workspace"),
manual_ui_patrol_artifact_evidence:
uiPatrolEvidence.includes("workflow_dispatch run `28717406758`") &&
uiPatrolEvidence.includes("ui-patrol-screenshots") &&
uiPatrolEvidence.includes("9 png files") &&
uiPatrolEvidence.includes("Local `corepack pnpm ui-patrol`") &&
uiPatrolEvidence.includes("pending_no_schedule_run") &&
uiPatrolEvidence.includes("manual_ui_patrol_artifact_evidence"),
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 @@ -267,6 +280,12 @@ function axisEvidenceCoverage({
) {
satisfied.push("web_user_flow_current_main_evidence");
}
if (
axis.id === "web_ui_and_operational_evidence" &&
completedEvidence.manual_ui_patrol_artifact_evidence
) {
satisfied.push("manual_ui_patrol_artifact_evidence");
}
if (
axis.id === "local_first_privacy_boundary" &&
completedEvidence.privacy_raw_free_regression_sweep
Expand Down
5 changes: 4 additions & 1 deletion src/cli/commands/quality-evidence.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ describe("quality-evidence CLI command", () => {
status: "blocked_external",
satisfied_evidence: expect.arrayContaining([
"web_user_flow_current_main_evidence",
"manual_ui_patrol_artifact_evidence",
]),
remaining_evidence: expect.arrayContaining([
"scheduled_ui_patrol",
Expand Down Expand Up @@ -161,7 +162,9 @@ describe("quality-evidence CLI command", () => {
expect(text).toContain(
"web_ui_and_operational_evidence: blocked_external",
);
expect(text).toContain("satisfied=web_user_flow_current_main_evidence");
expect(text).toContain(
"satisfied=web_user_flow_current_main_evidence,manual_ui_patrol_artifact_evidence",
);
expect(text).toContain("remaining=scheduled_ui_patrol");
expect(text).toContain(
"codex_and_claude_code_integration: blocked_external",
Expand Down
7 changes: 7 additions & 0 deletions src/packaging/plugin-files.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -945,6 +945,9 @@ describe("plugin packaging files", () => {
expect(packageJson.files).toContain(
"docs/PRODUCT_POSITIONING_EVIDENCE_2026-07-06.md",
);
expect(packageJson.files).toContain(
"docs/UI_PATROL_EVIDENCE_2026-07-06.md",
);
expect(packageJson.scripts["evidence:quality"]).toBe(
"node scripts/quality-95-evidence.mjs",
);
Expand All @@ -968,6 +971,7 @@ describe("plugin packaging files", () => {
expect(content).toContain(
"docs/PRODUCT_POSITIONING_EVIDENCE_2026-07-06.md",
);
expect(content).toContain("docs/UI_PATROL_EVIDENCE_2026-07-06.md");
expect(content).toContain("PR #478");
expect(content).toContain("28753458359");
expect(content).toContain("corepack pnpm evidence:quality");
Expand All @@ -980,6 +984,7 @@ describe("plugin packaging files", () => {
expect(content).toContain("recommended_next_slices");
expect(content).toContain("blocked_by_external_event");
expect(content).toContain("product_positioning_metadata_alignment");
expect(content).toContain("manual_ui_patrol_artifact_evidence");
expect(content).toContain("local-first privacy boundary");
expect(content).toContain("setup/doctor/MCP smoke");
expect(content).toContain("loop memory");
Expand Down Expand Up @@ -1040,6 +1045,8 @@ describe("plugin packaging files", () => {
expect(evidenceScript).toContain("readCompletedEvidence");
expect(evidenceScript).toContain("product_positioning_metadata_alignment");
expect(evidenceScript).toContain("PRODUCT_POSITIONING_EVIDENCE_2026-07-06");
expect(evidenceScript).toContain("manual_ui_patrol_artifact_evidence");
expect(evidenceScript).toContain("UI_PATROL_EVIDENCE_2026-07-06");
expect(evidenceScript).toContain("web_user_flow_current_main_evidence");
expect(evidenceScript).toContain("browser e2e passed");
expect(evidenceScript).toContain("privacy_raw_free_regression_sweep");
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 @@ -186,6 +186,7 @@ describe("quality 9.5 evidence script", () => {
status: "blocked_external",
satisfied_evidence: expect.arrayContaining([
"web_user_flow_current_main_evidence",
"manual_ui_patrol_artifact_evidence",
]),
remaining_evidence: expect.arrayContaining([
"scheduled_ui_patrol",
Expand Down
23 changes: 23 additions & 0 deletions tasks/todo.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# 작업 계획

## 2026-07-06 PromptLane Web Operations Evidence Split

- [x] CHECK: GitHub `ui-patrol.yml` still has only workflow_dispatch runs and
no real `schedule` event, so scheduled `ui-patrol` cannot be completed.
- [x] RED: quality evidence CLI/script tests required
`web_ui_and_operational_evidence` to include
`manual_ui_patrol_artifact_evidence` while still keeping
`scheduled_ui_patrol` and `scorecard_level_below_9_5` as remaining evidence;
tests failed while only `web_user_flow_current_main_evidence` was satisfied.
- [x] GREEN: `docs/UI_PATROL_EVIDENCE_2026-07-06.md` records manual
workflow_dispatch artifact, local UI patrol, and web-user-flow evidence, and
`quality-evidence` now exposes that non-scheduled web proof separately.
- [x] EFFECT: web operations evidence is more accurate without claiming the
scheduled cron blocker is complete.

### 판단 기준

- Do not mark scheduled `ui-patrol` complete without a real `schedule` event.
- Do not promote web operations to 9.5 while scheduled evidence remains
pending.
- Keep manual/local browser evidence visible so agents do not rerun stale local
work unnecessarily.

## 2026-07-06 PromptLane Product Positioning Evidence

- [x] CHECK: GitHub repository metadata, README copy, package metadata, Codex
Expand Down