← 返回 Skill 列表
extension
分类: 开发与工程API Key 暂未确认

flow-next-export-context

导出RepoPrompt上下文以供外部LLM审核(如ChatGPT、Claude网页版等)。当你希望使用外部模型来审查代码或计划时使用。触发条件为/flow-next:export-context。

person作者: jakexiaohubgithub

Export Context Mode

Build RepoPrompt context and export to a markdown file for use with external LLMs (ChatGPT Pro, Claude web, etc.).

Use case: When you want Carmack-level review but prefer to use an external model.

Preamble

CRITICAL: flowctl is BUNDLED — NOT installed globally. which flowctl will fail (expected). Define once; subsequent blocks use $FLOWCTL:

FLOWCTL="${DROID_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/flowctl"
[ -x "$FLOWCTL" ] || FLOWCTL="<plugin-root>/scripts/flowctl"   # <plugin-root> = the directory two levels above this skill's SKILL.md file (the harness gave you that file's absolute path when the skill loaded); substitute it literally
[ -x "$FLOWCTL" ] || FLOWCTL=".flow/bin/flowctl"

Input

Arguments: $ARGUMENTS Format: <type> <target> [focus areas]

Types:

  • plan <spec-id> - Export plan review context
  • impl - Export implementation review context (current branch)

This skill is phrase-triggered (no slash command) — invoke it by asking in natural language; the host agent parses <type> <target> [focus areas] from the request.

Examples:

  • "export context for plan fn-1, focus on security"
  • "export impl review context, focus on the auth changes"

Setup

REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"

Workflow

Step 1: Determine Type

Parse arguments to determine if this is a plan or impl export.

Step 2: Gather Content

For plan export:

$FLOWCTL show <spec-id> --json
$FLOWCTL cat <spec-id>

For impl export:

git branch --show-current
git log main..HEAD --oneline 2>/dev/null || git log master..HEAD --oneline
git diff main..HEAD --name-only 2>/dev/null || git diff master..HEAD --name-only

Step 3: Setup RepoPrompt

eval "$($FLOWCTL rp setup-review --repo-root "$REPO_ROOT" --summary "<summary based on type>" --create)"

Step 4: Augment Selection

$FLOWCTL rp select-get --window "$W" --tab "$T"

# Add relevant files
$FLOWCTL rp select-add --window "$W" --tab "$T" <files>

Step 5: Build Review Prompt (file composition — no content re-typing)

Path-persistence rule: bash vars do not survive across tool calls. The prompt path is composed once as a literal and typed verbatim in every block that touches it — ${TMPDIR:-/tmp}/flow-export-prompt-<target>-<agent-chosen 4-char suffix>.md. A run that carries the path in a shell variable across tool calls has broken this: the later block writes to an empty path.

Build the prompt by deterministic composition — the handoff is captured via redirection, never pasted into a heredoc; only the static review criteria (same criteria as plan-review or impl-review) are typed, once, in the quoted heredoc:

PROMPT_FILE="${TMPDIR:-/tmp}/flow-export-prompt-<target>-<suffix>.md"   # literal path

# 1. Builder handoff — captured via redirection, never re-typed
$FLOWCTL rp prompt-get --window "$W" --tab "$T" > "$PROMPT_FILE"

# 2. Review criteria (static, quoted heredoc — same criteria block as
#    plan-review or impl-review, per the export type)
cat >> "$PROMPT_FILE" << 'EOF'
<review criteria — static block>
EOF

$FLOWCTL rp prompt-set --window "$W" --tab "$T" --message-file "$PROMPT_FILE"

Done when

  • $PROMPT_FILE names the same literal path in all three commands above.
  • The builder handoff reached the file by redirection from flowctl rp prompt-get. A run that reconstructs that content inside a heredoc has broken this.
  • The only typed content is the static review criteria block for this export type, appended once via the quoted heredoc.

Step 6: Export

OUTPUT_FILE=~/Desktop/review-export-$(date +%Y%m%d-%H%M%S).md
$FLOWCTL rp prompt-export --window "$W" --tab "$T" --out "$OUTPUT_FILE"
open "$OUTPUT_FILE"

Step 7: Inform User

Exported review context to: $OUTPUT_FILE

The file contains:
- Full file tree with selected files marked
- Code maps (signatures/structure)
- Complete file contents
- Review prompt with Carmack-level criteria

Paste into ChatGPT Pro, Claude web, or your preferred LLM.
After receiving feedback, return here to implement fixes.

Note

This skill is manual-only. It produces no receipts and no status updates, so an autonomous invocation is declined rather than served — a run that reports success to an autonomous caller has broken this.

Done when

  • The run ended with flowctl rp prompt-export to a timestamped output file, and told the user that exact path plus what the file contains.