Expose gitea-workflow / llm-project-workflow / git-pr-workflows as one workflow router in mcp_list_project_skills, add preflight + Codex install script, and document multi-runtime skill name parity.
2.1 KiB
2.1 KiB
Workflow skill mount across runtimes (#551)
Problem
Controller prompts require gitea-workflow, but:
- Claude may load
~/.claude/skills/gitea-workflow - Codex often has no
~/.codex/skills/gitea-workflow - The portable package in-repo is
skills/llm-project-workflow mcp_list_project_skillshistorically listed operational guides only, not the workflow router
Sessions then either block incorrectly or proceed without the workflow wall.
Canonical names (must resolve to the same skill)
| Name | Use |
|---|---|
gitea-workflow |
Primary controller / Codex skill name |
llm-project-workflow |
Portable in-repo package name |
git-pr-workflows |
Legacy alias |
Source of truth: skills/llm-project-workflow/SKILL.md
In-repo alias stub: skills/gitea-workflow/SKILL.md
Codex install
From a branches/ worktree (or any clone of the repo):
./scripts/install-codex-workflow-skill.sh
# optional:
./scripts/install-codex-workflow-skill.sh --dry-run
./scripts/install-codex-workflow-skill.sh --skills-dir "$HOME/.codex/skills"
This symlinks the portable package under all three names. Restart Codex after install.
MCP discovery
mcp_list_project_skillsincludesgitea-workflow,llm-project-workflow, andgit-pr-workflows.mcp_get_skill_guide("<name>")returns the same router steps for each.mcp_check_workflow_skill_preflightproves the in-repo skill file exists and reports Codex mount status.
Preflight rule
Before any git or Gitea mutation:
- Call
mcp_check_workflow_skill_preflight. - If
blocked/workflow_skill_readyis false → BLOCKED + DIAGNOSE; do not mutate. - Load the skill by any canonical name and follow the router.
Missing Codex mount alone does not block if the in-repo skill is present and loaded via MCP/docs; operators should still install the Codex symlink so prompt names resolve natively.
Controller prompts
Prefer:
Invoke skill
gitea-workflow(alias ofllm-project-workflow).
Do not require a name that is only available on one runtime.