Skip to content

feat(delivery-video): add delivery-video plugin v1.1.1 - #146

Open
Lumos-789 wants to merge 12 commits into
zai-org:mainfrom
Lumos-789:feat/delivery-video
Open

Lumos-789 wants to merge 12 commits into
zai-org:mainfrom
Lumos-789:feat/delivery-video

Conversation

@Lumos-789

@Lumos-789 Lumos-789 commented Oct 31, 2026 •

Copy link
Copy Markdown

Plugin type / 插件类型(必填)

  • Standard plugin / 普通插件(非 UI) — does not provide MCP Apps interactive pages / 不提供 MCP Apps 交互页面

Affected plugin name(s) / 涉及的插件名称:delivery-video

Latest / 最新版本 — 1.1.1 反馈报告视频(2026-11-04)

This PR now ships delivery-video 1.1.1. The branch payload was re-synced in full (20 files under external_plugins/delivery-video), and marketplace.json follows .zcode-plugin/plugin.json verbatim (version, description, description_i18n).

New in 1.1.1:

  • intent: "feedback" episodes turn a real defect recording into a traceable report video: a P1 CRITICAL style severity chip plus REPRO / ACTUAL phase chips, a repro-steps panel on the repro segment, and a result state that is the defect still reproducing.
  • render.py emits feedback.json and a feedback.generated.md draft (severity, environment, expected/actual, ordered repro steps, segment timeline, "not verified" list); both bind the artifact SHA256.
  • New examples/feedback-episode.example.json. Delivery episodes are unchanged and keep the same quality-gate rules and thresholds.

Verification matrix (1.1.1)

Environment: ZCode CLI 0.17.1, macOS arm64, Python 3.14.4, FFmpeg 8.1.1, plugin installed from the local dev-oss-projects marketplace into ~/.zcode/cli/plugins/cache/dev-oss-projects/delivery-video/1.1.1.

Check Result
npm test PASS — 12 Python + 3 Node tests
tools/marketplace_check.py PASS — OK zcode=8 codex=5 plugins=8
tools/plugin_acceptance.py delivery-video-plugin PASS — delivery-video@1.1.1
tools/public_release_gate.py repo PASS — 0 blocking findings
Repo preflight → render → verify PASS — 12.5s, gate score 100, SHA256 bd5ff7da59d2070144e43051601e9353afb4ae500c2b673bec302dbed58f55b9

Real ZCode agent run 1 — feedback episode

Session sess_093bf999-816a-452d-9a8b-a4ad5d7e259a, cwd delivery-video-plugin. The agent loaded the installed skill and ran the scripts from the cache path .../delivery-video/1.1.1/skills/delivery-video/scripts/, not the repo copy:

Step Result
preflight.py build/screen_demo-zcode-111 PREFLIGHT=PASS, 1 expected warning (no cached TTS before first synthesis)
render.py render build/screen_demo-zcode-111 COMPLETE, 13.500s, gate=pass, score 100
verify_delivery.py build/screen_demo-zcode-111 DELIVERY=PASS, score 100
  • Artifact screen_demo.mp4: 1920x1080 / 30fps / h264 + AAC, SHA256 1c09efecbcb5758a1fab876176b7c4cb0eeab1a2849271c45a14d382928185a6, equal to quality_gate/report.json.video_sha256.
  • Emitted feedback.json (issue ZCODE-VERIFY-1, severity critical) and feedback.generated.md.
  • Frames inspected: P1 CRITICAL + REPRO chips with the repro panel on segment 1; P1 CRITICAL + ACTUAL chip on segment 2.

Real ZCode agent run 2 — delivery regression

Session sess_56fa275f-98f3-402f-a9e6-19690b6fc9d2, same installed cache: preflight PASS → render gate=pass, score 100, 12.600s → verify DELIVERY=PASS. Artifact SHA256 375f1bd830db2fca55d09d35c72a39bebbebdc4bf20799c0038bd5abcdb7a005, matching the gate report. Confirms 1.1.1 did not disturb the delivery path.

Both runs used synthetic 1920x1080 test fixtures (color bars) to exercise the pipeline, not a business UI; they prove the render/gate/verify chain, not product behaviour.

Not verified in this round

  • Uploading or publishing to a customer channel — no upload was performed, artifacts stay local.
  • External visual-critic.json review (--require-critic), which remains a separate gate.
  • Windows/Linux host re-run for this version.

What / 改动内容

The plugin turns a feature that actually runs into a trustworthy delivery demo video, or a defect into a traceable feedback video: real recordings only, narrated subtitles, a fail-loud preflight, and a deterministic quality gate bound to the artifact SHA256.

Release history included in this branch — version 1.0.6 adds case-driven recording guidance (recommended, not a gate):

  • Case list first: when one video covers two or more acceptance cases, write the case list before recording — case id, what it proves, entry, precondition/test data, expected observable result (examples/cases.example.md). The list lives in the target project, not in the plugin.
  • One case, one real run: each case starts from a known state and owns its takes (F-01-entry.mp4 …); reset test data between cases instead of inheriting the previous case's state, and never splice half of one run with another.
  • Per-case outcomes: track PASS/FAIL/OBS per case while recording. A failing case is reported as failing or left out on purpose — never silently dropped so the video looks complete.
  • Background opening: a short opening stating what the feature is, who it is for and what problem the demo covers; later cases only explain their own delta.
  • Segment binding: segments carry the case id of the run they came from (shown as the on-screen chip), and case order follows execution order.

Two acceptance-case demos recorded with this flow on a real local project are linked in the comments.

Version 1.0.5 hardens the installed plugin for users on different machines:

  • Cross-machine failure handling: when ffmpeg or ffprobe is absent, preflight, verification and the attachment gate now return actionable FAIL messages instead of a Python traceback. Preflight stops before probing recordings when the tools are unavailable.
  • UTF-8 everywhere: episode, evidence, TTS clock, timeline and quality-report JSON are read and written explicitly as UTF-8, so Chinese Windows locales and paths with spaces/non-ASCII characters do not depend on the system code page.
  • Font and platform setup: CJK font discovery now covers common macOS/Linux/Windows locations (including WINDIR) and fails before rendering with an install hint. README and skill prerequisites document py -3 on Windows and fonts-noto-cjk on minimal Linux hosts.
  • Regression coverage: tests cover missing executables and missing CJK fonts in addition to the existing clock/registration tests.
  • ZCode manifest: the plugin now uses the standard "skills": "skills" form. The previous array form was accepted but produced skillRootCount: 2 in ZCode 0.17.1 instead of the expected 1.
  • ZCode same-name selection: ZCode keeps ~/.agents/skills/delivery-video and the installed plugin skill as separate entries. /skill delivery-video selects the old user copy, so the README tells users to select delivery-video:delivery-video or use the qualified command.
  • ZCode presentation: the marketplace entry now carries displayName and Chinese localized display metadata, so the plugin is not presented as a bare slug.

Version 1.0.4 fixes issues found while testing the installed plugin in a real DeepSeek Harness session:

  • Skill loading precedence: DSH merges skill registries by scope, and an Agent preset can mount a preset-local filesystem provider that shadows a Host runtime registration. The DSH wrapper now registers the packaged skill in both the Host and every live Agent scope, including Agents created after plugin activation. This keeps an older ~/.agents/skills copy from winning without deleting the user's local files.
  • TTS compatibility: require edge-tts>=7.3.1; 7.2.8 and older can receive HTTP 403. Preflight now checks ffmpeg/ffprobe, Pillow and edge-tts before touching the recording, with an actionable upgrade command.
  • Subtitle punctuation: rebuild character clocks from the original narration because edge-tts WordBoundary events omit punctuation. Sentence boundaries now produce correct subtitle line breaks while preserving Latin-word spacing.
  • Static UI false positive: M111 low bitrate density is now an informational notice, not a warning or hard failure. Sparse 1080p forms can compress below 1000 kbps while remaining perfectly legible; hard failures still cover spec, audio, loudness, black frames and freeze frames.
  • Optional critic: E401 is no longer emitted as a default warning. An independent visual review is enforced only when verify_delivery.py --require-critic is requested for an external delivery.
  • Packaging: the npm allowlist now excludes __pycache__ and bytecode.
  • Regression tests: added clock-alignment, subtitle-grouping, existing-Agent registration, future-Agent registration and cleanup tests.

Pipeline:

  • preflight.py validates structure, intervals, crops, browser-recording evidence, TTS cache contracts and narration red lines.
  • render.py synthesizes narration, applies the 0.3x–3x speed clamp, draws labels and word-synced subtitles, concatenates, loudness-normalizes to -14 LUFS, and runs the delivery-v1 quality gate. Its gate subcommand works on any mp4.
  • verify_delivery.py checks decode integrity, output spec, per-shot evidence and SHA256-bound quality reports.
  • The same repository also ships a DSH bundle wrapper (package.json + cordis.patch.yml + index.js).

Verification — 1.0.6 and earlier / 历史版本验证

  • npm test: 6 Python alignment/dependency/font tests plus 3 Node tests (2 DSH loading/cleanup, 1 ZCode manifest) passed.
  • Python 3.9 compile and unit tests passed.
  • Full re-render in a path containing Chinese characters and spaces: preflight PASS, render PASS, delivery verification PASS, attachment gate PASS; output SHA256 stayed 8d3defeab043e5beae1cf5cc0c01986fb686140f7ebbfc4d59893787e85e381f.
  • Missing-tool simulations returned clean FAIL messages for preflight, verification and gate; a minimal Linux Python image also reported missing ffmpeg/ffprobe, edge-tts, Pillow and CJK font without crashes.
  • Installed in DeepSeek Harness desktop and verified in a fresh Agent session:
    • Base directory: /Users/black-wood/.dsh/profiles/desktop/node_modules/delivery-video/skills/delivery-video/
    • scripts/verify_delivery.py is present and readable through that installed path
    • the old ~/.agents/skills/delivery-video copy no longer wins
  • Real browser recording, 3 segments including save and refresh read-back:
    • preflight: PASS
    • render: PASS, score 100, zero warnings
    • verify_delivery: PASS, zero warnings
    • attachment gate: PASS, score 100, zero warnings
    • --require-critic: fails as designed when visual-critic.json is absent
    • bitrate density remains available as an informational notice; no independent critic claimed
  • npm pack --dry-run: 13 expected source/doc files, no __pycache__, no .pyc.

ZCode acceptance (requested by review)

Tested on ZCode CLI 0.17.1, macOS 27.0.1 (26A434, arm64), Node v24.15.0, Python 3.14.4, FFmpeg 8.1.1, on 2026-11-02; the same episode was also rendered inside a Linux container (python:3.11-slim with Debian ffmpeg and fonts-noto-cjk).

Step Result Evidence
Plugin installation PASS Installed delivery-video@dev-delivery-video-local 1.0.5 from a local development marketplace; skillCount=1, skillRootCount=1, diagnostics=[].
Skill invocation PASS Selected delivery-video:delivery-video; resolved to the installed cache path .../delivery-video/1.0.5/skills/delivery-video/SKILL.md.
Real recording PASS Fresh headless Playwright capture of the test page; 1920x1080, 313 frames, 10.433s, evidence SHA256 03ff3042c12febdebb25f42a76296477a425eac995f450fa2affb5abb73393a5.
Video generation PASS Ran the installed plugin's render.py render; 11.800s, 1920x1080, 30fps, h264 + AAC, SHA256 eecf8d6d599a46a03352177b4cf92e1ce7324a0eee33b86fddc099916544f516.
Delivery verification PASS verify_delivery.py: DELIVERY=PASS, score 100, 0 hard failures, 0 warnings, 3 shots; M111 remains an informational notice at 601 kbps.

The full recording → render → verify chain ran in one ZCode Agent session using the installed plugin path. The unqualified /skill delivery-video selects the older ~/.agents copy when both exist, so the README documents delivery-video:delivery-video and the qualified command.

Not verified in ZCode: installation/update from the public marketplace index (the test used a local development marketplace), Windows hosts, the desktop GUI flow, independent visual-critic.json review, delivery.md generation, and upload/publish. The ZCode CLI headless runner on this app bundle needed a local built-in-provider path shim; it is an environment/launcher issue, not plugin code. No user video was uploaded or published; the two review-only sample renders are linked in the comment below.

Additional ZCode lifecycle coverage (install/update/disable/uninstall, failure paths, macOS and Linux renders with downloadable samples) is documented in the follow-up comment.

Self-check / 自查清单

  • Plugin name is unique kebab-case; directory is external_plugins/delivery-video/
  • Category remains developer-tools
  • Version is synchronized as 1.1.1 in plugin.json, package.json, and marketplace.json
  • English and Chinese READMEs describe the same behavior and prerequisites
  • description_i18n.en is identical between plugin manifest and marketplace entry
  • Network/file/command side effects are documented
  • No secrets, machine-specific paths, generated media or bytecode are included

Real-recording delivery demo videos: edge-tts narration, word-synced subtitles, self-contained ffmpeg pipeline and a deterministic delivery-v1 quality gate (preflight/render/verify scripts).
@panda920

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

Require edge-tts >=7.3.1, preserve punctuation in subtitle clocks, treat low bitrate density as a visual-review warning, and exclude Python bytecode from the npm package.
@Lumos-789 Lumos-789 changed the title feat(delivery-video): add delivery-video plugin v1.0.0 feat(delivery-video): add delivery-video plugin v1.0.1 Nov 2, 2026
Require edge-tts >=7.3.1, preserve punctuation in subtitle clocks, treat low bitrate density as a visual-review warning, and exclude Python bytecode from the npm package.
Require edge-tts >=7.3.1, preserve punctuation in subtitle clocks, treat low bitrate density as a visual-review warning, and exclude Python bytecode from the npm package.
@Lumos-789 Lumos-789 changed the title feat(delivery-video): add delivery-video plugin v1.0.1 feat(delivery-video): add delivery-video plugin v1.0.2 Nov 2, 2026
Register the DSH skill at runtime so the installed plugin wins over an older user-level copy, keep M111 informational, enforce the critic only on request, and preserve the edge-tts/subtitle/package fixes.
@Lumos-789 Lumos-789 changed the title feat(delivery-video): add delivery-video plugin v1.0.2 feat(delivery-video): add delivery-video plugin v1.0.3 Nov 2, 2026
Register the DSH skill at runtime so the installed plugin wins over an older user-level copy, keep M111 informational, enforce the critic only on request, and preserve the edge-tts/subtitle/package fixes.
Register the DSH skill at runtime so the installed plugin wins over an older user-level copy, keep M111 informational, enforce the critic only on request, and preserve the edge-tts/subtitle/package fixes.
@panda920

panda920 commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

@panda920

panda920 commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

Register the DSH skill in both host and Agent scopes so preset-local filesystem copies cannot shadow the installed plugin. Keep M111 informational, enforce the critic only on request, and preserve the edge-tts, subtitle and packaging fixes.
@Lumos-789 Lumos-789 changed the title feat(delivery-video): add delivery-video plugin v1.0.3 feat(delivery-video): add delivery-video plugin v1.0.4 Nov 2, 2026
@jacksonliuyn

jacksonliuyn commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

The current verification notes mainly cover DeepSeek Harness. Could you also document testing in ZCode? Has the full flow been tested successfully in ZCode: plugin installation → Skill invocation → recording → video generation and verification?

Please include the ZCode version, operating system, and results for each step, and explicitly note any steps that have not yet been verified.

Fail cleanly when ffmpeg or ffprobe is missing, keep JSON and subtitle I/O UTF-8 on every OS, detect CJK fonts before rendering, and document Windows py -3 plus Linux font setup. Preserve agent-scoped skill loading, the informational M111 notice, and the explicit critic gate.
@Lumos-789 Lumos-789 changed the title feat(delivery-video): add delivery-video plugin v1.0.4 feat(delivery-video): add delivery-video plugin v1.0.5 Nov 2, 2026
@Lumos-789

Copy link
Copy Markdown
Author

Added the requested ZCode acceptance matrix to the PR body. The tested environment was ZCode CLI 0.17.1 on macOS 27.0.1 (26A434, arm64), Node v24.15.0, Python 3.14.4 and FFmpeg 8.1.1.

  • Plugin installation: PASS via a local development marketplace. delivery-video@dev-delivery-video-local 1.0.5 reported skillCount=1, skillRootCount=1 and no diagnostics.
  • Skill invocation: PASS with delivery-video:delivery-video; it resolved to the installed cache path, not the old ~/.agents copy.
  • Recording: PASS. A fresh headless Playwright capture produced a 1920x1080, 313-frame, 10.433s browser take with matching evidence.
  • Video generation: PASS using the installed plugin's render.py render; output was 11.800s, 1920x1080, 30fps, h264 + AAC, SHA256 eecf8d6d599a46a03352177b4cf92e1ce7324a0eee33b86fddc099916544f516.
  • Verification: PASS with verify_delivery.py; score 100, zero hard failures, zero warnings, three shots. M111 remains an informational notice.

The full recording → render → verify chain ran in one ZCode Agent session. Not verified in ZCode: installation/update from the public marketplace index, Windows/Linux, an independent visual-critic.json review, and upload/publish. The ZCode CLI headless runner on this app bundle needed a local built-in-provider path shim; that is a launcher/environment issue, not plugin code. No video was uploaded or published.

One ZCode-specific usability note is documented: when ~/.agents/skills/delivery-video already exists, unqualified /skill delivery-video selects the older user copy. Select delivery-video:delivery-video or use /skill delivery-video:delivery-video <task> to invoke the installed plugin.

@Lumos-789

Copy link
Copy Markdown
Author

ZCode acceptance v2: full lifecycle, failure paths, and sample renders

Tested on 2026-11-02 with ZCode CLI 0.17.1 on macOS 27.0.1 (26A434, arm64), Node v24.15.0, Python 3.14.4 and FFmpeg 8.1.1, plus one Linux run inside python:3.11-slim with Debian ffmpeg and fonts-noto-cjk. The plugin was the 1.0.5 build installed from a local development marketplace; every command below ran against the installed cache path, not the source tree.

Install lifecycle

Scenario Result Evidence
Fresh install (1.0.5) PASS Installed plugin delivery-video@dev-delivery-video-local (1.0.5) [enabled]; plugins list reports skills: 1; skills list shows exactly one delivery-video:delivery-video at .../cache/dev-delivery-video-local/delivery-video/1.0.5/skills/delivery-video/SKILL.md
Manifest validation PASS zcode plugins validate succeeds on both the marketplace copy and the installed cache
Update 1.0.4 → 1.0.5 PASS Installed 1.0.4 from a second local market, bumped that market to 1.0.5, plugins update reported Updated ... from 1.0.4 to 1.0.5 and the cache path moved to 1.0.5
Disable / enable PASS plugins disable removes the delivery-video:delivery-video entry from skills list (count 1 → 0); enable restores it (0 → 1)
Uninstall PASS plugins uninstall --force removes the plugin from plugins list and from skills list

Skill selection

Scenario Result Evidence
Qualified invocation PASS Session asked to use delivery-video:delivery-video resolved .../cache/dev-delivery-video-local/delivery-video/1.0.5/skills/delivery-video/SKILL.md and .../scripts/render.py, with a working directory containing Chinese characters and spaces
Bare name with an older ~/.agents/skills/delivery-video present Expected The unqualified name loads ~/.agents/skills/delivery-video/SKILL.md; this matches the README note, so the qualified name is required when both copies exist
Natural-language trigger with both copies present Observation "record a delivery video for the feature we just finished" also selects the older user copy, because its description matches better and it owns the bare name. On a machine without that manual copy, the plugin Skill is the only match. No plugin change made; README already tells users to use delivery-video:delivery-video

Recording → render → verify (real ZCode Agent session)

One headless ZCode session ran the installed plugin end to end in .../zcode-matrix-.../中文 空格 工作区:

Step Result Evidence
Real recording PASS Headless Playwright capture of the test page: 1920x1080, 314 frames, 10.467s, evidence SHA256 95c17137cf5b3bd7fccdb32a727ec694f65857736ee94f0d06f3960553633d89
preflight.py PASS 3 segments OK; one expected warning that TTS was not cached yet
render.py render PASS 11.800s, 1920x1080, 30fps, h264 + AAC, gate=pass, score 100
verify_delivery.py PASS DELIVERY=PASS, 3 shots, 0 hard failures, 0 warnings; M111 stays informational (607 kbps bitrate density)
Re-render determinism PASS Second render produced a byte-identical artifact: 1491fe00db39c6947128f016bc360333bc5c61d3e624e29098446d7ad42194f5
Independent render.py gate on the mp4 PASS GATE=PASS ... score=100 profile=delivery-v1
Key-frame review PASS Frames at 1.5s / 5.0s / 9.0s inspected at 1080p: labels, subtitles and the read-back state are all legible

Failure paths

Scenario Result Evidence
--require-critic without visual-critic.json Fails as designed FAIL: missing independent visual review: .../visual-critic.json, exit 1
Tampered artifact Detected Appending bytes to a copy of the mp4 gives FAIL: quality report is not bound to this artifact (video_sha256 missing or mismatched), exit 1
No ffmpeg / ffprobe on PATH Clean failure preflight.py, render.py gate and verify_delivery.py each exit 1 with actionable messages such as FAIL: ffmpeg is not on PATH and missing required executable(s): ffmpeg, ffprobe; no Python traceback

Linux host

The same episode was rendered inside python:3.11-slim with Debian ffmpeg and fonts-noto-cjk:

  • preflight.py: PASS (3 segments)
  • render.py render: PASS, 11.800s, score 100
  • verify_delivery.py: PASS, 3 shots, 0 hard failures, 0 warnings
  • SHA256: 2e464f799db469e70bbeb890d2487ef2a4df68173c0f493506565746017b3e42

Sample renders for review

Both files come from the same three-segment episode and were gated at score 100:

  • screen_demo-macos.mp4 — macOS arm64, sha256 1491fe00db39c6947128f016bc360333bc5c61d3e624e29098446d7ad42194f5
  • screen_demo-linux.mp4 — Linux container, sha256 2e464f799db469e70bbeb890d2487ef2a4df68173c0f493506565746017b3e42

These are attached as a pre-release on my fork purely as review evidence, not as a plugin release. Both URLs were re-downloaded and hashed after upload; the hashes above match the rendered files.

ZCode CLI observations (not plugin defects)

  • Two marketplaces exposing the same plugin name can both be enabled, which produces two identical delivery-video:delivery-video entries. plugins update delivery-video then requires the qualified delivery-video@<marketplace> form.
  • In a non-interactive shell plugins uninstall requires --force; even then, versioned cache directories for a removed development market remain on disk.
  • The CLI inside the macOS app bundle needs a built-in-provider config path shim to run headless on this machine. That is a launcher/environment issue, not plugin code, and it is absent on the normal desktop path.

Still not verified in ZCode

Install or update from the public marketplace index (this round used local development marketplaces only), Windows, the desktop GUI flow (all runs above used the CLI headless runner), an independent visual-critic.json review, delivery.md generation, and upload/publish of user videos.

@Lumos-789

Copy link
Copy Markdown
Author

Session IDs behind the matrix above

ZCode persists every CLI run as a session. These are the exact session IDs behind the acceptance table, recorded on 2026-11-02 (times Asia/Shanghai) in /Users/black-wood/IdeaProjects/oss-projects/.agents/zcode-matrix-20261102-183213/中文 空格 工作区:

Session ID Started What it covered Result
sess_c9dc2a1a-ce2f-4254-a92e-a15e98aa4ec0 18:33:52 CLI/auth sanity prompt, /private/tmp PASS: PING-OK
sess_8725d5ea-7cc6-44ce-9982-486235fde7be 18:34:13 Qualified invocation delivery-video:delivery-video PASS: resolved the installed cache path and its scripts/render.py
sess_dc957781-c2dd-4723-b6ee-4bb0daba6470 18:34:37 Unqualified name with the older ~/.agents copy present Expected: resolved the user-level copy
sess_58d5ae5f-b7a1-44e8-813c-908095f82cba 18:35:47 Full chain with the installed plugin: preflight → render → verify PASS: 11.800s, 1920x1080, 30fps, h264+AAC, score 100, sha256 1491fe00db39c6947128f016bc360333bc5c61d3e624e29098446d7ad42194f5
sess_752cab8b-b9a6-4d6d-af7b-b801bef7f3b8 18:40:03 Natural-language trigger with both copies present Observation: selected the user-level copy; the qualified name selects the plugin

Prior round (the earlier single-session evidence, recorded 18:08 in zcode-e2e.Qx5Y8G): sess_9d5551b4-4d0a-42a3-9026-8d3beb007931 — 11.800s, 1920x1080, 30fps, h264+AAC, score 100, sha256 eecf8d6d599a46a03352177b4cf92e1ce7324a0eee33b86fddc099916544f516.

Full index with the same table: zcode-session-index.md.

To inspect locally, ZCode stores sessions in ~/.zcode/cli/db/db.sqlite (table session, columns id, title, directory, time_created) and writes per-session model I/O to ~/.zcode/cli/rollout/model-io-<session-id>.jsonl.

Two caveats: session IDs are local to the machine that ran the test (-p headless runs are not resumable remotely), and the lifecycle/failure-path checks (zcode plugins ..., missing-ffmpeg runs, tamper test) ran outside Agent sessions, so they have no session id. Those are reproducible with the commands listed in the previous comment.

@Lumos-789

Copy link
Copy Markdown
Author

@jacksonliuyn the ZCode verification you asked for is in the two comments above; linking them here so they are easy to find:

Short version: yes, the full chain passes in ZCode CLI 0.17.1 on macOS 27.0.1 (26A434, arm64) — plugin installation → Skill invocation → recording → video generation → verification, plus a Linux container run. Install/update/disable/enable/uninstall and the failure paths (missing ffmpeg, tampered artifact, --require-critic) behave as designed.

Not verified: install/update from the public marketplace index, Windows, the desktop GUI flow, an independent visual-critic.json, delivery.md generation, and upload/publish.

No code changes were needed; the head is still 0806be8.

Recommend listing acceptance cases before recording, running one real run per case, adding a background opening, and assembling segments in execution order with a result shot per case. Keep project artifacts in the target project so the plugin package stays self-contained. Add a case-list example. Guidance only; no schema or gate enforcement.
@Lumos-789 Lumos-789 changed the title feat(delivery-video): add delivery-video plugin v1.0.5 feat(delivery-video): add delivery-video plugin v1.0.6 Nov 2, 2026
@Lumos-789

Copy link
Copy Markdown
Author

Case-driven delivery demo (1.0.6 guidance, real run)

1.0.6 adds optional case-driven recording guidance: when a video covers two or more acceptance cases, write the case list first, record one real run per case, and give each case its own result segment. It is guidance only — no new gate.

We exercised this flow on a real local project (an after-sales ticket handover desk, iterated v1 → v2: bulk assignment, closed-ticket guard, audit log) and recorded two acceptance cases with the installed plugin:

  • C-01 bulk assignment (21.7s): 3 tickets assigned to one owner, owner read back after refresh, 3 audit entries shown.
  • C-02 closed-ticket guard (19.3s): 2 tickets assigned normally, 1 closed ticket skipped with the reason stated on screen; the audit log shows both outcomes.

Both renders passed the built-in delivery gate at score 100 and verify_delivery.py. Each case ran with its own port and its own SQLite database, so one case's result state cannot bleed into the next.

Videos and the case list (prerelease release assets, not committed to git):

Both SHA256 values were re-verified against the downloaded release assets. Demo data is synthetic; no independent visual critic was run for these two renders.

@panda920

panda920 commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

Align the install notes in README, package.json and .gitignore with the repo. No behavior change.
@Lumos-789
Lumos-789 force-pushed the feat/delivery-video branch from a7307ec to 37ee64c Compare November 3, 2026 06:35
@panda920

panda920 commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

Sync the full plugin payload with the 1.1.1 source: feedback episodes
with severity/phase badges, a repro panel, feedback.json and a
generated markdown report bound to the artifact SHA256.
@Lumos-789 Lumos-789 changed the title feat(delivery-video): add delivery-video plugin v1.0.6 feat(delivery-video): add delivery-video plugin v1.1.1 Nov 4, 2026
@Lumos-789

Copy link
Copy Markdown
Author

1.1.1 feedback report videos — ZCode verification (2026-11-04)

Updated this PR in place to 1.1.1: full payload re-sync, marketplace.json version/description/description_i18n matching plugin.json verbatim, new examples/feedback-episode.example.json.

Environment: ZCode CLI 0.17.1, macOS arm64, Python 3.14.4, FFmpeg 8.1.1. Installed with zcode plugins update delivery-video@dev-oss-projects → 1.0.6 → 1.1.1, then ran two real Agent sessions with zcode -p --mode yolo, forcing the qualified skill name delivery-video:delivery-video.

Session Episode Steps Artifact
sess_093bf999-816a-452d-9a8b-a4ad5d7e259a feedback (intent: "feedback") preflight PASS → render gate=pass score 100, 13.500s → verify DELIVERY=PASS SHA256 1c09efecbcb5758a1fab876176b7c4cb0eeab1a2849271c45a14d382928185a6
sess_56fa275f-98f3-402f-a9e6-19690b6fc9d2 delivery (regression) preflight PASS → render gate=pass score 100, 12.600s → verify DELIVERY=PASS SHA256 375f1bd830db2fca55d09d35c72a39bebbebdc4bf20799c0038bd5abcdb7a005

In both sessions the agent resolved the scripts from the installed cache ~/.zcode/cli/plugins/cache/dev-oss-projects/delivery-video/1.1.1/skills/delivery-video/scripts/, not from the repo checkout.

Feedback artifacts: feedback.json (issue ZCODE-VERIFY-1, severity critical) and feedback.generated.md. Frame inspection confirmed P1 CRITICAL + REPRO chips with the repro panel on segment 1 and P1 CRITICAL + ACTUAL on segment 2.

Repo-side gates for the same commit: npm test PASS (12 Python + 3 Node), plugin_acceptance.py PASS delivery-video@1.1.1, marketplace_check.py OK, public release gate 0 blocking findings.

Not covered: uploading/publishing to a customer channel (none was performed), external visual-critic.json review, and a Windows/Linux host re-run.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants