Token导航 LogoToken导航

Agent Skill · 开发

jeo(杰奥)

jeo 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

jeo 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证信息还不明确,第三方扫描有未通过项,按安装量在开发类的 21,746 个 Skill 里排第 15,585。

总安装 582周安装 24GitHub Stars 11下载 190核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:jeo(杰奥)
来源仓库:https://github.com/akillness/skills-template
仓库路径:skills/jeo
安装命令:
npx skills add https://github.com/akillness/skills-template --skill jeo
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/akillness/skills-template --skill jeo

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

jeo 用于端到端多智能体工作流协调,适合在 Codex、Claude、Cursor、Gemini CLI 中运行复杂项目规划与执行时使用。集成 Serena Memory 实现跨代理状态管理,支持浏览器 UI 反馈循环与长期规则维护。

通过 npx skills add 命令从指定 GitHub 仓库安装,需结合原始 README 核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。jeo 属于开发类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/jeo

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/akillness/skills-template --skill jeo;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

jeo 怎么安装?

在终端执行 npx skills add https://github.com/akillness/skills-template --skill jeo。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

jeo 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

jeo 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

jeo 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

jeo 用的人多吗?

公开数据是累计安装 582 次,近一周安装 24 次,下载 190 次,GitHub 11 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

jeo 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
jeo

杰奥 · 本页

58211操作浏览器未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

JEO — Integrated Agent Orchestration

Keyword: jeo · annotate · UI-review · agentui (deprecated) | Platforms: Claude Code · Codex CLI · Gemini CLI · OpenCode Planning (plannotator) → Development (team/bmad) → QA (agent-browser + agentation) → Cleanup (worktree) with a persistent .jeo project ledger

When to use this skill

  • Run an end-to-end multi-agent workflow with an explicit planning gate
  • Add a browser-backed UI feedback loop with annotate or ui-review
  • Coordinate plan approval, execution, verification, and cleanup in one skill
  • Keep long-term rules, short-term system/test plans, active work items, and history in .jeo/

Rules (always enforced)

  1. Do not reopen the PLAN gate when the current plan hash already has a terminal result
  2. Only a revised plan resets plan_gate_status to pending
  3. Do not process agentation annotations before explicit submit/onSubmit opens the submit gate
  4. NEVER enter EXECUTE without plan_approved: true
  5. NEVER run plannotator or agentation with & (background)
  6. NEVER reopen an unchanged plan after approved, manual_approved, feedback_required, or infrastructure_blocked

Authoritative state: .omc/state/jeo-state.json


State Management

All state operations use one script: scripts/jeo-state-update.py

# Initialize (or resume if state exists)
python3 scripts/jeo-state-update.py init "<task>"

# Record checkpoint at each step
python3 scripts/jeo-state-update.py checkpoint <plan|execute|verify|verify_ui|cleanup>

# Record error (auto-increments retry_count; warns at >= 3)
python3 scripts/jeo-state-update.py error "<message>"

# Check resume point
python3 scripts/jeo-state-update.py resume

# Set any field (supports dot notation for nested keys)
python3 scripts/jeo-state-update.py set phase execute
python3 scripts/jeo-state-update.py set agentation.active true

.jeo Project Ledger

JEO keeps a human-readable project ledger in .jeo/ and a machine-readable state file in .omc/state/jeo-state.json.

PathPurpose
.jeo/long-term.mdDurable product intent, standing rules, validation contract
.jeo/short-term.mdCurrent system slice, unit-test plan, flow-test plan, exit criteria
.jeo/planned.mdPlanned queue and parking-lot items
.jeo/progress.mdCurrent delivery stage and timestamped updates
.jeo/history.mdAppend-only completion summaries
.jeo/tasks/queued/*.mdQueued work-item files
.jeo/tasks/active/*.mdSingle active work-item file (removed on completion after history is written)

Use scripts/jeo-project-sync.py to keep the ledger in sync:

python3 scripts/jeo-project-sync.py init "<task>"
python3 scripts/jeo-project-sync.py queue api-contract "Harden API contract validation"
python3 scripts/jeo-project-sync.py start-next
python3 scripts/jeo-project-sync.py stage <planning|development|qa|done>
python3 scripts/jeo-project-sync.py progress "<message>"
python3 scripts/jeo-project-sync.py complete <slug> "<summary>"
python3 scripts/jeo-project-sync.py status

Phase mapping

JEO phaseDelivery stage.jeo expectation
planplanningReview long-term.md, refine short-term.md, confirm the active work item
executedevelopmentUpdate the active task checklist and append implementation notes to progress.md
verify / verify_uiqaRecord unit/flow/browser verification evidence in short-term.md and progress.md
cleanup / donedoneAppend to history.md, check off planned.md, remove the task file, queue follow-up work if needed

Detailed ledger rules: references/DOT_JEO_LEDGER.md


Instructions

Execute steps in order. Each step only proceeds after the previous one completes.

STEP 0: Bootstrap

mkdir -p .omc/state .omc/plans .omc/logs
python3 scripts/jeo-state-update.py init "<detected task>"
python3 scripts/jeo-project-sync.py init "<detected task>"
python3 scripts/jeo-project-sync.py start-next

Claude Code only — hook self-check (run inline):

Verify the ExitPlanMode hook is using claude-plan-gate.py, not raw plannotator. If misconfigured, auto-repair:

import json, os, subprocess, sys

p = os.path.expanduser("~/.claude/settings.json")
if os.path.exists(p):
    s = json.load(open(p))
    for entry in s.get("hooks", {}).get("PermissionRequest", []):
        if entry.get("matcher") == "ExitPlanMode":
            for h in entry.get("hooks", []):
                cmd = h.get("command", "")
                if (cmd.strip() == "plannotator" or cmd.startswith("plannotator ")) and "claude-plan-gate" not in cmd:
                    print("[JEO][WARN] Hook uses raw plannotator — state tracking disabled. Auto-repairing...", file=sys.stderr)
                    for candidate in [
                        os.path.join(os.getcwd(), ".agent-skills/jeo/scripts/setup-claude.sh"),
                        os.path.expanduser("~/.claude/skills/jeo/scripts/setup-claude.sh"),
                        os.path.expanduser("~/.agent-skills/jeo/scripts/setup-claude.sh"),
                    ]:
                        if os.path.exists(candidate):
                            subprocess.run(["bash", candidate], check=False)
                            print("[JEO] Hook repaired. Restart Claude Code to apply.", file=sys.stderr)
                            break

Notify the user:

"JEO activated. Delivery stage: planning. .jeo ledger initialized. Add the annotate keyword if a UI feedback loop is needed."

STEP 1: PLAN / Planning (never skip)

python3 scripts/jeo-state-update.py checkpoint plan
python3 scripts/jeo-project-sync.py stage planning
python3 scripts/jeo-project-sync.py progress "Entered planning gate."
  1. Review .jeo/long-term.md, .jeo/short-term.md, .jeo/planned.md, .jeo/progress.md, and .jeo/history.md before changing scope.
  2. Write plan.md (include goal, steps, risks, completion criteria, and the current planning/development/QA expectations from .jeo/short-term.md).
  3. Update .jeo/short-term.md with:

- the system slice for this run - the unit-test plan - the flow/browser verification plan

  1. Invoke plannotator (per platform): Claude Code (hook mode — only supported method): Codex / Gemini / OpenCode (blocking CLI): # Skip if same plan hash already has terminal gate status # (check plan_gate_status and last_reviewed_plan_hash in jeo-state.json) # Resolve JEO scripts directory _JEO_SCRIPTS="" for _candidate in \ "${JEO_SKILL_DIR:-}/scripts" \ "$HOME/.agent-skills/jeo/scripts" \ "$HOME/.codex/skills/jeo/scripts" \ "$(pwd)/.agent-skills/jeo/scripts" \ "scripts"; do [-f "${_candidate}/plannotator-plan-loop.sh"] && _JEO_SCRIPTS="$_candidate" && break done # Auto-install plannotator if missing bash "${_JEO_SCRIPTS}/ensure-plannotator.sh" || exit 1 # Run blocking plan gate (no &) FEEDBACK_DIR=$(python3 -c "import hashlib,os; h=hashlib.md5(os.getcwd().encode()).hexdigest()[:8]; d=f'/tmp/jeo-{h}'; os.makedirs(d,exist_ok=True); print(d)") bash "${_JEO_SCRIPTS}/plannotator-plan-loop.sh" plan.md "${FEEDBACK_DIR}/plannotator_feedback.txt" 3

- Call EnterPlanMode → write plan content → call ExitPlanMode - The ExitPlanMode PermissionRequest hook fires plannotator automatically - Wait for the hook result before proceeding - NEVER call plannotator via MCP tool or CLI directly in Claude Code

  1. Check result:

- approved (exit 0) → set phase=execute, plan_approved=true → STEP 2 - Feedback (exit 10) → read feedback, revise plan.md, repeat step 2 - Infrastructure blocked (exit 32) → Conversation Approval Mode: output plan.md to user, ask "approve" or provide feedback. WAIT for user response - Session exited 3 times (exit 30/31) → ask user whether to abort

  1. When the plan is approved, append a note to .jeo/progress.md describing what is ready to build and what QA must prove.

NEVER: enter EXECUTE without approved: true. NEVER: run with & background.


STEP 2: EXECUTE / Development

python3 scripts/jeo-state-update.py checkpoint execute
python3 scripts/jeo-state-update.py set phase execute
python3 scripts/jeo-project-sync.py stage development
python3 scripts/jeo-project-sync.py progress "Development started from the approved plan."

Auto-detect team availability:

TEAM_AVAILABLE=false
if [[ "${CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS:-}" =~ ^(1|true|yes)$ ]]; then
  TEAM_AVAILABLE=true
fi
python3 scripts/jeo-state-update.py set team_available $TEAM_AVAILABLE

Check next_mode in state (set by claude-plan-gate.py on approval):

ConditionAction
next_mode == "ralphmode"/omc:ralphmode "<task>"
Claude Code + omc + team/omc:team 3:executor "<task>"
Claude Code without teamError — run bash scripts/setup-claude.sh, enable AGENT_TEAMS=1, restart
Codex / Gemini / OpenCodeBMAD fallback: /workflow-init then /workflow-status

While executing, keep the active .jeo/tasks/active/*.md file current using:

# When plan and risks are locked
python3 scripts/jeo-project-sync.py update-checklist planning "Scope captured in plan.md" --done
python3 scripts/jeo-project-sync.py update-checklist planning "Risks and completion criteria written" --done

# As code, docs, and tests are completed
python3 scripts/jeo-project-sync.py update-checklist development "System changes implemented" --done
python3 scripts/jeo-project-sync.py update-checklist development "Unit tests added or updated" --done

NEVER fall back to single-agent execution in Claude Code.


STEP 3: VERIFY / QA

python3 scripts/jeo-state-update.py checkpoint verify
python3 scripts/jeo-state-update.py set phase verify
python3 scripts/jeo-project-sync.py stage qa
python3 scripts/jeo-project-sync.py progress "Entered QA verification."
  1. Browser verification with agent-browser (when browser UI is present): agent-browser snapshot http://localhost:3000
  2. annotate keyword detected → enter STEP 3.1
  3. Otherwise → enter STEP 4
  4. Record QA evidence in .jeo/short-term.md using: python3 scripts/jeo-project-sync.py record-evidence "unit tests: X passing, Y added" python3 scripts/jeo-project-sync.py record-evidence "flow check: <description>" python3 scripts/jeo-project-sync.py record-evidence "browser verification: <outcome>" # Then mark QA checklist items complete python3 scripts/jeo-project-sync.py update-checklist qa "Flow or integration checks recorded" --done python3 scripts/jeo-project-sync.py update-checklist qa "Browser / annotation verification recorded when applicable" --done

STEP 3.1: VERIFY_UI (only when annotate keyword is detected)

Pre-flight check (all platforms):

if ! curl -sf --connect-timeout 2 http://localhost:4747/health >/dev/null 2>&1; then
  echo "agentation-mcp not running — skipping VERIFY_UI, proceeding to CLEANUP"
  python3 scripts/jeo-state-update.py error "agentation-mcp not running; VERIFY_UI skipped"
  # Proceed to STEP 4 (graceful skip, no exit 1)
fi

If server is running:

  1. Set state: phase=verify_ui, agentation.active=true, agentation.submit_gate_status=waiting_for_submit
  2. Wait for explicit human submit — do NOT read /pending before submit

- Claude Code: wait for UserPromptSubmit hook - Others: wait until ANNOTATE_READY (or AGENTUI_READY alias)

  1. After submit → set agentation.submit_gate_status=submitted
  2. Process annotations:

- Claude Code (MCP): agentation_watch_annotations (blocking, batchWindowSeconds:10, timeoutSeconds:120) - Others (HTTP): poll GET http://localhost:4747/pending with timeout

  1. Per-annotation loop:

- acknowledge → navigate code via elementPath (CSS selector) → apply fix → resolve - Dismissed annotations: skip code changes, increment annotations.dismissed

  1. count=0 or timeout → proceed to STEP 4
  2. If QA discovers follow-up work, add it immediately: python3 scripts/jeo-project-sync.py queue follow-up "<new work item>"

NEVER: process draft annotations before submit/onSubmit.


STEP 4: CLEANUP

python3 scripts/jeo-state-update.py checkpoint cleanup
python3 scripts/jeo-state-update.py set phase cleanup
python3 scripts/jeo-project-sync.py stage done
  1. Check for uncommitted changes (warn if present)
  2. Complete the active .jeo task and write the permanent summary: python3 scripts/jeo-project-sync.py complete <slug> "<what shipped, what QA proved, what follow-up remains>"
  3. If more work is needed, queue it before leaving cleanup: python3 scripts/jeo-project-sync.py queue next-step "<follow-up work>"
  4. Run worktree cleanup: bash scripts/worktree-cleanup.sh || git worktree prune
  5. Set phase=done

Quick Start

# Install JEO
npx skills add https://github.com/akillness/oh-my-skills --skill jeo

# Full install (all tools + components)
bash scripts/install.sh --all

# Check status
bash scripts/check-status.sh

# Per-platform setup
bash scripts/setup-claude.sh      # Claude Code hooks
bash scripts/setup-codex.sh       # Codex CLI config
bash scripts/setup-gemini.sh      # Gemini CLI hooks
bash scripts/setup-opencode.sh    # OpenCode plugin

Platform Configuration

Claude Code

Hook config (~/.claude/settings.json):

{
  "hooks": {
    "PermissionRequest": [{
      "matcher": "ExitPlanMode",
      "hooks": [{"type": "command", "command": "python3 ~/.claude/skills/jeo/scripts/claude-plan-gate.py", "timeout": 1800}]
    }],
    "UserPromptSubmit": [{
      "matcher": "*",
      "hooks": [{"type": "command", "command": "python3 ~/.claude/skills/jeo/scripts/claude-agentation-submit-hook.py", "timeout": 300}]
    }]
  },
  "mcpServers": {
    "agentation": {"command": "npx", "args": ["-y", "agentation-mcp", "server"]}
  }
}

Codex CLI

Config (~/.codex/config.toml):

notify = ["python3", "~/.codex/hooks/jeo-notify.py"]
[tui]
notifications = ["agent-turn-complete"]
developer_instructions must be a top-level string (not a [table]), or Codex fails with invalid type: map, expected a string.

Gemini CLI

Instructions in ~/.gemini/GEMINI.md. AfterAgent hook as safety net in ~/.gemini/settings.json. Agent must call plannotator directly in blocking mode to receive feedback in the same turn.

OpenCode

Plugins in opencode.json. Slash commands: /jeo-plan, /jeo-exec, /jeo-annotate, /jeo-cleanup.


State File Reference

Path: {worktree}/.omc/state/jeo-state.json

FieldValuesDescription
phase`plan\execute\verify\verify_ui\cleanup\done`Current workflow phase
delivery_stage`planning\development\qa\done`Human-readable stage mirrored into .jeo/progress.md
plan_approvedboolWhether plan was approved
plan_gate_status`pending\approved\feedback_required\infrastructure_blocked\manual_approved`Plan gate result
plan_current_hashsha256 or nullCurrent plan.md hash
last_reviewed_plan_hashsha256 or nullHash of last reviewed plan
plan_review_method`plannotator\manual\null`How plan was approved
team_availableboolWhether team mode is available
retry_countintError retry count (ask user at >= 3)
last_errorstring or nullMost recent error
checkpointstring or nullLast entered phase (for resume)
jeo.rootpathProject-local planning ledger root
jeo.active_taskstring or nullActive .jeo work item slug
jeo.last_sync_atISO 8601 or nullLast .jeo sync timestamp
agentation.activeboolWhether VERIFY_UI watch loop is running
agentation.submit_gate_status`idle\waiting_for_submit\submitted`Submit gate state
agentation.exit_reason`all_resolved\timeout\user_cancelled\error\null`How watch loop ended

Examples

Example 1: New feature with .jeo ledger

python3 scripts/jeo-project-sync.py init "Build exportable analytics dashboard"
python3 scripts/jeo-project-sync.py start-next
python3 scripts/jeo-project-sync.py stage planning

Then run the normal JEO flow: plan approval → development → QA → cleanup. When done:

python3 scripts/jeo-project-sync.py complete 000-primary "Dashboard shipped with unit tests, flow checks, and browser verification."

Example 2: Add follow-up work discovered during QA

python3 scripts/jeo-project-sync.py queue qa-follow-up "Fix chart legend overlap on small screens"
python3 scripts/jeo-project-sync.py progress "Queued QA follow-up from annotate review."

Best practices

  1. Plan first: always review the plan with ralph+plannotator before executing (catches wrong approaches early)
  2. Team first: omc team mode is most efficient in Claude Code
  3. bmad fallback: use BMAD in environments without team (Codex, Gemini)
  4. Keep .jeo honest: long-term is durable, short-term is current, history is append-only
  5. One active task file: keep only one file under .jeo/tasks/active/ at a time
  6. Complete means summarize + delete task file: write history first, then remove the task file
  7. Worktree cleanup: run worktree-cleanup.sh immediately after work completes (prevents branch pollution)
  8. State persistence: use .omc/state/jeo-state.json and .jeo/ together across sessions
  9. annotate: use the annotate keyword to run the agentation watch loop for complex UI changes (precise code changes via CSS selector). agentui is a backward-compatible alias.

Troubleshooting

IssueSolution
plannotator not runningJEO auto-runs ensure-plannotator.sh; if it fails: bash scripts/check-status.sh
plannotator not opening (Claude Code)It's hook-only. Use EnterPlanMode → ExitPlanMode. Check: cat ~/.claude/settings.json
Same plan re-reviewed (Codex)Compare last_reviewed_plan_hash with current plan.md hash — skip if match + terminal status
Codex startup failureRe-run bash scripts/setup-codex.sh — developer_instructions must be a top-level string
team mode not workingRun bash scripts/setup-claude.sh, restart Claude Code, verify AGENT_TEAMS=1
agentation not openingCheck curl http://localhost:4747/health and /sessions
annotation not in codeInclude summary field when calling agentation_resolve_annotation
.jeo not updatingRun python3 scripts/jeo-project-sync.py status and ensure .jeo/ exists at the git root
worktree conflictgit worktree prune && git worktree list

References

平台分布

Codex

36.54%
按下载量换算69

Claude

29.12%
按下载量换算55

Cursor

19.32%
按下载量换算37

Gemini CLI

10.16%
按下载量换算19

安全审计

Gen Agent Trust Hub

未通过

Socket

可疑

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills