This is the chengfeng-videocut support entry point, not a third editing workflow. By default it only generates a public Issue draft; any external write must go through a redacted preview and user confirmation.
问题描述
|
v
最小只读诊断 -> 脱敏 -> 展示仓库 / 标题 / 正文
|
用户明确确认
|
v
认证 + 标签检查 + 查重
|
v
创建 GitHub Issue
1. Confirm this is a reproducible bug
First distinguish:
- Bug: the actual behavior deviates from an existing contract, interface, version capability, or deterministic result.
- Feature request: the product never promised this capability; do not disguise it as a bug.
- Usage question: answer or diagnose first, do not automatically report.
Collect only the minimal facts needed for reproduction. Do not install Runtime, start Studio, modify the project, re-edit the video, or upload media to "supplement evidence." When Runtime exists, you may run node scripts/ensure-runtime.cjs --json from the plugin root directory for a read-only probe, keeping only state / kind / version / healthy / error.code; do not attach the full doctor output.kind=desktop-managed only indicates that the installation source is the desktop App; it does not authorize this Skill to start the App, services, or reinstall. If it does not exist, write "not detected."
2. Choose a fixed repository
The workspace root is not necessarily a Git repository; do not guess the remote from the current directory:
| Affected component | target | GitHub repository |
|---|---|---|
| Runtime, Studio, UI, CLI, API, timeline, rendering | product |
Agentchengfeng/chengfeng-videocut |
| Skill, Marketplace, installation orchestration, MCP App, workflow documentation | skills |
Agentchengfeng/chengfeng-videocut-skills |
For cross-component issues, report first to the repository that first violated the contract, and explain the other component in the body; if you cannot determine this, ask the user first.
3. Generate structured input
Using umask 077 , write the candidate to a JSON file in the current task's temporary directory, not to product specification files; after submission ends, delete the temporary JSON and Markdown:
{
"schemaVersion": 1,
"target": "product",
"component": "Studio",
"title": "Runtime 0.1.1 无法打开 HyperFrames 顶层剪口播视图",
"summary": "一句话说明影响",
"steps": ["第一步", "第二步"],
"expected": "预期行为",
"actual": "实际行为",
"environment": {
"Runtime": "0.1.1",
"OS": "macOS"
},
"evidence": ["只放最小、可公开的诊断"],
"acceptance": ["可验证的修复条件"]
}
Prohibited contents:
- API Key、Token、Cookie、
.env; - Video, audio, screenshots, full logs, or transcript text;
- Customer names, original video names, real
projectId, user absolute paths; - Private repository content without the user's permission.
4. Generate and show a redacted draft first
Locate the script from the current SKILL.md :
First followcheck for updates"Readiness check" step 1 to locateplugin root
(go up two levels from this Skill's actual source file path; do not run codex plugin list or search other
caches; the following <插件根> all substitute this literal path). This Skill only uses it to locate scripts,
and does not install Runtime or start services:
node "<插件根>/skills/chengfeng-report-bug/scripts/report-bug.cjs" draft --input "<报告JSON文件>" --output "<草稿输出文件>" --json
target must be explicitly product or skills, and both missing and misspelled values should stop; do not silently switch to reporting to another repository. The script cleans common secrets, local usernames, volume names, path remnants, and localhost query parameters; automatic redaction cannot identify arbitrary customer names, so a manual read-through is still required. Show the user:
repo
label=bug
title
完整脱敏正文
At the same time save the returned confirmationReceipt, and show the user confirmationToken and the expiration time. Stop when the user has not explicitly confirmed this public content; merely detecting an error does not equal consent to report. The token only binds the draft content and does not by itself prove the user's consent; the Agent must still wait for an explicit reply. Confirmation is valid only for the immediately following single submission in the current task, expires in 30 minutes, and cannot be used across tasks or reused.
5. Submit after confirmation
Submit only for the draft that was just displayed and whose content has not changed:
node "<插件根>/skills/chengfeng-report-bug/scripts/report-bug.cjs" submit --input "<报告JSON文件>" --target "<目标仓库>" --confirmed --confirm-token "<确认token>" --receipt "<确认回执文件>" --json
Fixed rules:
- Before submission, the script checks
gh auth status, the target repository Issues, and thebuglabel; if it fails, keep the draft. - When a fingerprint of the same component, reproduction steps, and actual result already exists, return the original Issue URL; do not pass off a broad title as a duplicate.
- When the body changes after confirmation, return
confirmation_mismatch, and you must preview again. - When the confirmation credential has expired or has been used, return
confirmation_expired / confirmation_replayed, and you must preview again. - When the creation result has no explicit Issue URL, do not automatically retry; it may already have been created.
- Only after obtaining a GitHub Issue URL can you say "already reported".
Failure handling
github_auth_required: state that the draft is complete but not submitted; claiming success is prohibited.github_issue_create_failed: keep the draft and the manual entry point; do not retry in a loop.confirmation_required/confirmation_mismatch: display the exact public content again.- Target repository has no permission or is not visible: do not report to an arbitrary repository; let the user decide whether to report to the public Skills repository instead.