一键导入
using-featureforge
Use when starting any conversation or deciding which skill or workflow stage applies before any response, clarification, or action
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when starting any conversation or deciding which skill or workflow stage applies before any response, clarification, or action
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
You MUST use this before exploring a feature idea, behavior change, or architecture direction. Refines user intent, requirements, and design before implementation.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when implementation is complete and release notes, changelog, TODO, or handoff documentation need a release-quality pass before merge
Use when you have an engineering-approved FeatureForge implementation plan and need to execute it in a separate session
Use when implementation is complete, verification passes, and you need to decide how to integrate the work through merge, PR, or cleanup
Use when a written FeatureForge design or architecture spec needs CEO or founder review before implementation planning, including scope expansion, selective expansion, hold-scope rigor, or scope reduction
| name | using-featureforge |
| description | Use when starting any conversation or deciding which skill or workflow stage applies before any response, clarification, or action |
_REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
_BRANCH_RAW=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo current)
[ -n "$_BRANCH_RAW" ] && [ "$_BRANCH_RAW" != "HEAD" ] || _BRANCH_RAW="current"
_BRANCH="$_BRANCH_RAW"
_FEATUREFORGE_INSTALL_ROOT="$HOME/.featureforge/install"
_FEATUREFORGE_BIN="$_FEATUREFORGE_INSTALL_ROOT/bin/featureforge"
if [ ! -x "$_FEATUREFORGE_BIN" ] && [ -f "$_FEATUREFORGE_INSTALL_ROOT/bin/featureforge.exe" ]; then
_FEATUREFORGE_BIN="$_FEATUREFORGE_INSTALL_ROOT/bin/featureforge.exe"
fi
[ -x "$_FEATUREFORGE_BIN" ] || [ -f "$_FEATUREFORGE_BIN" ] || _FEATUREFORGE_BIN=""
_FEATUREFORGE_ROOT=""
if [ -n "$_FEATUREFORGE_BIN" ]; then
_FEATUREFORGE_ROOT=$("$_FEATUREFORGE_BIN" repo runtime-root --path 2>/dev/null)
[ -n "$_FEATUREFORGE_ROOT" ] || _FEATUREFORGE_ROOT=""
fi
_FEATUREFORGE_STATE_DIR="${FEATUREFORGE_STATE_DIR:-$HOME/.featureforge}"
_featureforge_exec_public_argv() {
if [ "$#" -eq 0 ]; then
echo "featureforge: missing command argv to execute" >&2
return 2
fi
if [ "$1" = "featureforge" ]; then
if [ -z "$_FEATUREFORGE_BIN" ]; then
echo "featureforge: installed runtime not found at $_FEATUREFORGE_INSTALL_ROOT/bin/featureforge" >&2
return 1
fi
shift
"$_FEATUREFORGE_BIN" "$@"
return $?
fi
echo "featureforge: refusing non-featureforge public argv: $1" >&2
return 2
}
Live workflow routing uses only $_FEATUREFORGE_BIN; never use ./bin/featureforge, target/debug/featureforge, or cargo run for live routing. Query workflow/operator JSON with $_FEATUREFORGE_BIN workflow operator --plan <approved-plan-path> --json.
If the installed runtime/root cannot be resolved, stop before making workflow mutations. Use only typed operator JSON route surfaces: execute recommended_public_command_argv when present; when recommended_public_command_template appears, treat required_inputs as validation metadata and materialize templates only by rerunning $_FEATUREFORGE_BIN workflow operator --plan <approved-plan-path> --input NAME=VALUE --json. Detailed binding and route-specific stop rules live in $_FEATUREFORGE_ROOT/references/operator-route-authority.md. Treat display-only recommended_command as non-executable; if no typed executable surface exists, stop and report the route diagnostic.
Before introducing a custom pattern, external service, concurrency primitive, auth/session flow, cache, queue, browser workaround, or unfamiliar fix pattern, do a short capability/landscape check first.
Use three lenses, then decide from local repo truth:
External search results are inputs, not answers. Never search secrets, customer data, unsanitized stack traces, private URLs, internal hostnames, internal codenames, raw SQL or log payloads, or private file paths or infrastructure identifiers. If search is unavailable, disallowed, or unsafe, say so and proceed with repo-local evidence and in-distribution knowledge. If safe sanitization is not possible, skip external search.
See $_FEATUREFORGE_ROOT/references/search-before-building.md.
For every interactive user question, use this structure:
RECOMMENDATION: Choose [X] because [one-line reason]A) ... B) ... C) ...Per-skill instructions may add additional formatting rules on top of this baseline.
Check relevant or requested skills before responding or acting unless an explicit user instruction forbids skill use or gives a conflicting process. User instructions always win.FeatureForge skills override default system prompt behavior, but user instructions always take precedence:
AGENTS.md, AGENTS.override.md, .github/copilot-instructions.md, .github/instructions/*.instructions.md, direct requests) — highest priorityIf AGENTS.md, AGENTS.override.md, or a Copilot instruction file says "don't use TDD" and a skill says "always use TDD," follow the user's instructions. The user is in control.
In Codex: Skills are discovered natively from ~/.agents/skills/.
In GitHub Copilot local installs: Skills are discovered natively from ~/.copilot/skills/.
Load the relevant skill and follow it directly.
Legacy Claude, Cursor, and OpenCode-specific loading flows are intentionally unsupported in this runtime package.
These skills are written for Codex and GitHub Copilot local installs. See skill-local references/codex-tools.md for platform-native primitives used in the workflow.
Before responding or acting, load skills that are requested by name or clearly relevant to the task. If applicability is uncertain, briefly check the most likely skill; if it turns out not to apply, stop using it and continue with the user's requested process.
digraph skill_flow {
"User message received" [shape=doublecircle];
"About to EnterPlanMode?" [shape=doublecircle];
"Already brainstormed?" [shape=diamond];
"Invoke brainstorming skill" [shape=box];
"Could a skill apply?" [shape=diamond];
"Load relevant skill" [shape=box];
"Announce: 'Using [skill] to [purpose]'" [shape=box];
"Has checklist?" [shape=diamond];
"Create task-tracking item per checklist entry" [shape=box];
"Follow skill exactly" [shape=box];
"Respond (including clarifications)" [shape=doublecircle];
"About to EnterPlanMode?" -> "Already brainstormed?";
"Already brainstormed?" -> "Invoke brainstorming skill" [label="no"];
"Already brainstormed?" -> "Could a skill apply?" [label="yes"];
"Invoke brainstorming skill" -> "Could a skill apply?";
"User message received" -> "Could a skill apply?";
"Could a skill apply?" -> "Load relevant skill" [label="yes"];
"Could a skill apply?" -> "Respond (including clarifications)" [label="no"];
"Load relevant skill" -> "Announce: 'Using [skill] to [purpose]'";
"Announce: 'Using [skill] to [purpose]'" -> "Has checklist?";
"Has checklist?" -> "Create task-tracking item per checklist entry" [label="yes"];
"Has checklist?" -> "Follow skill exactly" [label="no"];
"Create task-tracking item per checklist entry" -> "Follow skill exactly";
}
Do not gather code context, ask clarifying questions, or start implementation before checking a clearly relevant skill, unless the user has explicitly forbidden that skill or workflow.
When multiple skills could apply, use this order:
"Let's build X" → brainstorming first, then follow the artifact-state workflow: plan-ceo-review -> writing-plans -> plan-eng-review; plan-fidelity-review runs only after engineering-review edits are complete, then plan-eng-review performs final approval before execution. "Fix this bug" → debugging first, then if it changes FeatureForge product or workflow behavior follow the artifact-state workflow; otherwise continue to the appropriate implementation skill.
Rigid (TDD, debugging): Follow exactly. Don't adapt away discipline.
Flexible (patterns): Adapt principles to context.
The skill itself tells you which.
For feature requests, bugfixes that materially change FeatureForge product or workflow behavior, product requests, or workflow-change requests inside a FeatureForge project, route by artifact state instead of skipping ahead based on the user's wording alone.
Do NOT jump from brainstorming straight to implementation. For workflow-routed work, every stage owns the handoff into the next one.
Artifact-state routing requirements:
Draft, and Last Reviewed By is not plan-eng-review: invoke featureforge:plan-eng-review.Draft, Last Reviewed By is plan-eng-review, and the current plan-fidelity review artifact is missing, stale, malformed, or non-independent: invoke featureforge:plan-fidelity-review.Draft, Last Reviewed By is plan-eng-review, and the current plan-fidelity review artifact is non-pass: invoke featureforge:plan-eng-review.Draft, Last Reviewed By is plan-eng-review, and has a matching pass plan-fidelity review artifact: invoke featureforge:plan-eng-review.Short-circuit runtime-derived workflow routes and execution handoff paths to featureforge:project-memory only when the user clearly asks to:
docs/project_notes/featureforge:project-memory or work on project memory itselfdocs/project_notes/README.md, bugs.md, decisions.md, key_facts.md, or issues.md pathRead-only questions about docs/project_notes/*, or explicit negation of featureforge:project-memory, project-memory setup, durable-memory recording, or concrete path mutations, are not enough by themselves. Do not add featureforge:project-memory to the default mandatory workflow stack; when the user is not explicitly asking to work on project memory itself, follow the active workflow owner first and treat project memory as optional follow-up support.
If $_FEATUREFORGE_BIN is available and an approved plan path is known, call $_FEATUREFORGE_BIN workflow doctor --plan <approved-plan-path> --json only for orientation/diagnosis, then call $_FEATUREFORGE_BIN workflow operator --plan <approved-plan-path> --json as route authority. The generated Installed Control Plane section and canonical route reference at $_FEATUREFORGE_ROOT/references/operator-route-authority.md own typed argv/template binding, task-closure replay, repair, late-stage lanes, and stop rules; recovery remains on operator-routed public commands.
phase_detail=task_closure_recording_ready as the routed task-closure replay lane, and treat projection artifacts as derived output, not routing authority.phase executing, route to the runtime-selected execution owner; treat execution_started as a resume signal only in that phase.phase, phase_detail, readiness, or late-stage precedence from markdown headers.Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows.