一键导入
workflow-common-core
Lean core conventions and path contracts used by all /legion: commands
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Lean core conventions and path contracts used by all /legion: commands
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
DEPRECATED compatibility shim; workflow-common-core is canonical for all conventions referenced here
Interprets --just-* and --skip-* command flags for /legion:build and /legion:review, validates flag combinations against rules, and resolves the matching team template from intent-teams.yaml. Use when the user passes intent flags to build or review commands, asks about flag combinations, or needs to filter agent teams by intent.
Dev-QA loop engine with structured feedback, fix routing, and user escalation for /legion:review
Executes wave-structured plans with personality-injected agents — parallel or sequential per CLI adapter
Maps all 48 Legion agents by division, capability, and task type for intelligent team assembly
Engine for /legion:map. Analyzes an existing codebase, generates CODEBASE.md for backward-compatible architecture context, and writes .planning/codebase/ index artifacts consumed by /legion:start, /plan, /build, /review, /status, and /quick.
| name | workflow-common-core |
| description | Lean core conventions and path contracts used by all /legion: commands |
Always-load core conventions for every /legion: command. This file is intentionally compact.
.planning/.settings.json defaults safely when file is missing or invalid.AGENTS_DIR once per invocation before loading personality files.Every planning, execution, review, and advisory prompt must preserve this shared contract:
read-before-write -> evidence-before-action -> minimal diff -> verify-before-report
The contract turns Legion plans into constrained implementation work instead of open-ended design prompts. Any generated plan, executor prompt, or review brief that asks an implementation agent to modify files must define:
| Field | Required content |
|---|---|
| Role | The agent role/persona responsible for the task and whether it is planner, executor, reviewer, or coordinator work |
| Task | The exact outcome to produce, with requirement IDs or source references |
| Scope | Exact read targets, exact write targets, files_forbidden, and any sequential_files constraints |
| Allowed tools/actions | The tools/actions the agent may use, including verification commands and permitted file edits |
| Forbidden actions | Out-of-scope files, unapproved dependencies, API/schema/architecture changes, destructive git operations, and self-deferral |
| Stop gates | Conditions that must halt execution and emit BLOCKED instead of guessing |
| Verification criteria | Commands or deterministic checks that prove success before reporting |
| Final result format | Required status, files changed, verification evidence, decisions, issues, and errors |
Stop gates are mandatory when a prompt or plan is incomplete. If a required read
target is missing, a write target is absent from files_modified, instructions
conflict with files_forbidden, an API/type/validation decision is unresolved,
or success cannot be verified, the agent must report BLOCKED with evidence and
the narrow missing decision. It must not infer the design, broaden scope, or
report confidence without proof.
.legion-cli override in project root.adapters/*.md.CRITICAL: When commands or skills reference adapter.ask_user, Use adapter.ask_user, or instruct you to ask the user a question with structured choices, you MUST use the AskUserQuestion tool. Do NOT output questions as raw text and wait for a reply. The AskUserQuestion tool provides structured selection UI (arrow keys + Enter) which is the intended interaction model for all Legion commands.
For Claude Code, adapter.ask_user maps to:
AskUserQuestion(questions: [{
question: "Your question here",
options: [
{label: "option-1", description: "Description of option 1"},
{label: "option-2", description: "Description of option 2"}
]
}])
This applies to ALL question prompts in ALL commands — confirmation gates, mode selection, workflow preferences, and any other structured choice.
| File | Path | Purpose |
|---|---|---|
| PROJECT.md | .planning/PROJECT.md | Vision, requirements, constraints |
| ROADMAP.md | .planning/ROADMAP.md | Phase sequence and plan tracking |
| STATE.md | .planning/STATE.md | Current state and next action |
| REQUIREMENTS.md | .planning/REQUIREMENTS.md | Expanded requirement details |
| Phase plans | .planning/phases/{NN-name}/ | PLAN/SUMMARY/CONTEXT files |
Read settings.json from repo root if available. If missing/invalid, use defaults.
Defaults:
planning.max_tasks_per_plan = 3 (per-plan task cap only; not a phase plan-count cap)review.max_cycles = 3execution.agent_personality_verbosity = "full"integrations.github = "prompt"memory.enabled = truememory.project_scoped_only = truecontrol_mode = "guarded"After resolving control_mode from settings (default: "guarded"), load the corresponding profile:
Preconditions (MUST be verified before use):
control_mode key lookup is CASE-SENSITIVE. Valid values: exactly "autonomous", "guarded", "advisory", "surgical". Case variants ("Guarded", "GUARDED") are invalid — if detected, log warning and fall back to "guarded"."control-mode profile '{name}' missing flags: {list}. Falling back to guarded defaults for missing flags." and merge with hardcoded guarded defaults for only the missing flags. Do NOT fall back to guarded entirely — use the profile's provided flags where set.Resolution steps:
.planning/config/control-modes.yaml explicitly via the Read tool. Capture raw bytes; do NOT assume content.<escalation>severity: warning, type: infrastructure, decision: control-modes.yaml missing — falling back to hardcoded guarded defaults, context: .planning/config/control-modes.yaml not found; downstream gates will use hardcoded guarded flags</escalation> and continue with the hardcoded guarded fallback below.<escalation>severity: blocker, type: infrastructure, decision: Cannot resolve control mode, context: control-modes.yaml present but YAML parse failed</escalation> and STOP.profiles[control_mode] to get the flag set (exact key match, case-sensitive).<escalation>severity: warning, type: infrastructure, decision: control_mode '{name}' not defined in control-modes.yaml — using hardcoded guarded defaults, context: settings.json declared control_mode that is absent from profiles</escalation> and fall back to hardcoded guarded.authority_enforcement: true, domain_filtering: true, human_approval_required: true, file_scope_restriction: false, read_only: falseThe resolved profile is a set of 5 boolean flags: authority_enforcement, domain_filtering, human_approval_required, file_scope_restriction, read_only. This schema is the contract with downstream skills — adding or removing flags is a breaking change.
Resolve once per command invocation by actually reading the probe file (not assuming):
~/.claude/agents/agents-orchestrator.md (global install — preferred path)
AGENTS_DIR = ~/.claude/agents and STOP resolution. This is the standard installed location and should work for all npm-installed Legion users.agents/agents-orchestrator.md (local dev mode)
AGENTS_DIR = agents (relative to project root)~/.claude/legion/manifest.json then ~/.legion/manifest.json for an agents_dir keyCRITICAL: Do NOT skip the Read probe. Do NOT assume a path doesn't exist without trying it. Do NOT claim "agent files aren't on disk" without a real file-not-found error from the Read tool. The global install path (~/.claude/agents/) contains all 48 agent files for any npm-installed Legion instance.
Use resolved path for all personality reads:
{AGENTS_DIR}/{agent-id}.md
adapter.model_execution for execution agents unless command overrides it.| Command | Always Loads | Conditionally Loads |
|---|---|---|
/legion:start | workflow-common-core, questioning-flow, agent-registry, portfolio-manager, codebase-mapper | workflow-common-domains |
/legion:plan | workflow-common-core, agent-registry, phase-decomposer | memory-manager, github-sync, codebase-mapper, plan-critique, spec-pipeline, workflow-common-memory, workflow-common-github, workflow-common-domains |
/legion:build | workflow-common-core, agent-registry, wave-executor, execution-tracker | memory-manager, github-sync, codebase-mapper, workflow-common-memory, workflow-common-github |
/legion:review | workflow-common-core, agent-registry, review-loop, review-panel, execution-tracker | memory-manager, github-sync, codebase-mapper, design-workflows, workflow-common-memory, workflow-common-github, workflow-common-domains |
/legion:status | workflow-common-core, execution-tracker, milestone-tracker | memory-manager, github-sync, codebase-mapper, workflow-common-memory, workflow-common-github |
/legion:quick | workflow-common-core, agent-registry | workflow-common-domains |
/legion:map | workflow-common-core, codebase-mapper | (none) |
/legion:portfolio | workflow-common-core, portfolio-manager | workflow-common-github |
/legion:milestone | workflow-common-core, milestone-tracker, execution-tracker | github-sync, workflow-common-github |
/legion:agent | workflow-common-core, agent-registry, agent-creator | workflow-common-domains |
/legion:advise | workflow-common-core, agent-registry | workflow-common-domains |
/legion:explore | workflow-common-core, questioning-flow, polymath-engine | codebase-mapper |
/legion:board | workflow-common-core, agent-registry, board-of-directors, cli-dispatch | workflow-common-memory, workflow-common-github |
/legion:retro | workflow-common-core, memory-manager, execution-tracker | workflow-common-memory |
/legion:ship | workflow-common-core, ship-pipeline, execution-tracker | github-sync, workflow-common-github |
/legion:learn | workflow-common-core, memory-manager | workflow-common-memory |
/legion:update | workflow-common-core | workflow-common-github |
/legion:validate | workflow-common-core, agent-registry | (none) |
Execution-context budgets (always-load skills only):
build: soft 180 KB, hard 225 KBplan: soft 180 KB, hard 225 KBreview: soft 180 KB, hard 225 KBstatus: soft 120 KB, hard 150 KBRelease checks enforce hard ceilings and print telemetry for every command. Agent line-count remains telemetry, not a gate.
Lightweight validation that runs at the start of every command that loads project context. Fast enough to not add noticeable latency (pattern matching only, no full parse).
Runs automatically after loading PROJECT.md, ROADMAP.md, and STATE.md in the standard context loading step. Only runs for commands that load these files (i.e., commands with @.planning/PROJECT.md, @.planning/ROADMAP.md, or @.planning/STATE.md in their <context> block). Commands that do not load project state (e.g., /legion:update) skip this entirely.
PROJECT.md format check
# (has a title)## Requirements or ## Goals section headerROADMAP.md format check
| rowSTATE.md format check
/legion:validate/legion:validate for full diagnostics."