SuperAPI AI Directory

report-videocut-bug

Design & creation

View repository

Updated 10-15 16:42

About this skill

Report a Bug

This is the support entry point for chengfeng-videocut , not a third editing workflow. By default it only generates a public Issue draft; external writes must go through a redacted preview and user confirmation.

问题描述
   |
   v
最小只读诊断 -> 脱敏 -> 展示仓库 / 标题 / 正文
                                  |
                           用户明确确认
                                  |
                                  v
                     认证 + 标签检查 + 查重
                                  |
                                  v
                         创建 GitHub Issue

1. Confirm this is a reproducible bug

First distinguish:

  • Bug: actual behavior deviates from an existing contract, interface, version capability, or deterministic result.
  • Feature suggestion: the product never promised this capability; do not disguise it as a bug.
  • Usage question: answer or diagnose first, do not report automatically.

Collect only the minimum facts needed for reproduction. Do not install the Runtime, start Studio, modify the project, re-edit the video, or upload media to "add evidence." When the Runtime exists, you may run node scripts/ensure-runtime.cjs --json from the plugin root directory as a read-only probe, keeping only state / kind / version / healthy / error.code; do not attach the full doctor output. If it does not exist, write "not detected."

2. Choose a fixed repository

The workspace root is not necessarily a Git repository; it is forbidden to 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

Use umask 077 to write the candidate as JSON in the current task's temporary directory, not in product specification files; delete the temporary JSON and Markdown after submission ends:

{
  "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": ["可验证的修复条件"]
}

Forbidden to include:

  • 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 user permission.

4. First generate and show the redacted draft

Locate the script from the current SKILL.md :

PLUGIN_ROOT="$(codex plugin list --json | node -e 'let s=""; process.stdin.on("data", c => s += c); process.stdin.on("end", () => { const rows = JSON.parse(s).installed || []; const hit = rows.filter(x => x.enabled && x.name === "chengfeng-videocut" && x.source && x.source.path); if (hit.length !== 1) process.exit(1); process.stdout.write(hit[0].source.path); });')"
test -n "$PLUGIN_ROOT" && test -f "$PLUGIN_ROOT/.codex-plugin/plugin.json" || { echo "chengfeng-videocut enabled plugin root unavailable" >&2; exit 1; }
REPORT="$PLUGIN_ROOT/skills/report-videocut-bug/scripts/report-bug.cjs"
node "$REPORT" draft --input "$reportJson" --output "$draftMarkdown" --json

PLUGIN_ROOT only comes from the source.pathof the enabled Plugin line above. Do not rely on the SKILL_DIR, which is not guaranteed to exist, hardcode development machine paths, or guess the installation location by directory search.

target must be explicitly product or skills; if it is missing or misspelled, stop and do not silently report 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 human must still read through it. 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 if the user has not explicitly confirmed this public content; merely detecting an error does not equal consent to report. The token is bound only to the draft content and does not by itself prove user consent; the Agent must still wait for an explicit reply. Confirmation is valid only for the one submission immediately following it 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 shown and whose content has not changed:

node "$REPORT" submit \
  --input "$reportJson" \
  --target "$target" \
  --confirmed \
  --confirm-token "$confirmationToken" \
  --receipt "$confirmationReceipt" \
  --json

Fixed rules:

  • Before submission, the script checks gh auth status, the target repository Issues, and the bug label; on failure, 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; a new preview is required.
  • When the confirmation credential is expired or already used, return confirmation_expired / confirmation_replayed; a new preview is required.
  • When the creation result has no explicit Issue URL, do not automatically retry; it may already have been created.
  • Only when you have obtained the GitHub Issue URL can you say it has been "reported."

Failure handling

  • github_auth_required: State that the draft is complete but not submitted; do not claim success.
  • github_issue_create_failed: Keep the draft and manual entry point; do not retry in a loop.
  • confirmation_required / confirmation_mismatch: Re-display the exact public content.
  • 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.