技能 gen 4 Enterpr
- 作者仓库星标 796
- 作者仓库 jiuwenswarm
Skill Generator (enterprise doc → installed skill)
Instructions here, reference/, and scripts/ (package scripts/skill_gen/). You obtain SOP plain text, run full structured extraction exactly as in reference/sop-structure-pipeline.md, author the package under get_agent_workspace_dir() / "skills-draft" (per reference/generator-worker-spec.md), then immediately promote it so the skill is installed and loadable (see reference/operator-playbook.md canonical flow).
What you do (high level)
- Plain text
- Mandatory sequence when the user wanted a document but you still have no SOP plain text (wrong path, file not found, fetch failed, empty body, permission error, etc.):
- Recovery before fallback — Do not call
build_intent_fallback_sop,build_fallback_sop_structure, or generate the installable skill from intent-only fallback in the same assistant turn as that failure. A missing file is only a failed first ingest; it is not “no document” yet. Send exactly one recovery message first (single reply): offer a corrected absolute path, URL, or paste—same menu and tone as reference/sop-recovery-and-interview-fallback.md Part 1—and wait for the user’s next message (or treat recovery as already done if one recovery was sent earlier in the thread and the user declined, ignored, or supplied material afterward). - Fallback only after recovery — Only when recovery is complete (user gave path/URL/paste you can use, or declined/ignored after the one ask) and there is still no parseable SOP body, proceed to
build_intent_fallback_sop/build_fallback_sop_structurebelow. Do not skip step (1) because you “already know” the path failed.
- Recovery before fallback — Do not call
- Local file →
python3 <ABS>/scripts/skill_generator_cli.py sop-text --sop-file <abs-path> [--out-text <path>]or read the file in-tool; optional--print-raw-charsfor length. - HTTP(S) / WeChat →
url-fetch --url '…' [--out-json <path>]then use pagetextas the SOP body for extraction. - Pasted only — use the same string as input to
parse_sop_raw_text(no skipping structured extraction). - No document after recovery — you must build the canonical object in code. Preferred (one call):
await skill_gen.sop_fallback.build_intent_fallback_sop(user_intent=…, skill_name_hint=…, invoke_llm_json=…)— default: passinvoke_llm_jsonwhenever the runtime can invoke the model: deterministic skeleton then internal LLM refine (enrich_fallback_sop_with_llm). Only if the system cannot call a model for this step, passinvoke_llm_json=None(skeleton only) or useskill_gen.sop_fallback.build_fallback_sop_structureon sync-only paths (same shape; no enrich). SameSOPStructurefields as extraction (title, purpose, scope, roles, steps,knowledge_items, sections, decision points, exceptions, references, plus synthesizedraw_text). Do not callparse_sop_raw_texton empty text; do not hand-write a “representative” or illustrative SOP in prose instead of running the fallback—downstream drafting depends on the realSOPStructureandextraction_meta. Treatextraction_meta["fallback_sop"]as “template only” in the generated skill body. Still no real SOP after LLM polish: keepfallback_sopsemantics and do not treat output as audited policy.
- Mandatory sequence when the user wanted a document but you still have no SOP plain text (wrong path, file not found, fetch failed, empty body, permission error, etc.):
- Structured SOP (required) → Either
skill_gen.sop_parser.parse_sop_file/parse_sop_raw_textwithinvoke_llm_jsonwhen you have SOP plain text, or when you do not:await skill_gen.sop_fallback.build_intent_fallback_sop(..., invoke_llm_json=…)withinvoke_llm_jsonwhenever the runtime can invoke the model (default: skeleton + internal enrich);invoke_llm_json=Noneorbuild_fallback_sop_structureonly when the system cannot (single path; sop-structure-pipeline.md). - Draft package → under
get_agent_workspace_dir() / "skills-draft" / <skill_name>(when the host exposes that helper) or the equivalent agent-workspace path from the system prompt:SKILL.md(YAML frontmatter first) plus optionalreference/, per generator-worker-spec.md. Createskills-draftnext to the runtimeskills/folder if it does not exist.- Intent-only snapshot (required when fallback) — If
extraction_meta["fallback_sop"]is true (intent-only / template path), you must addreference/intent-sop-snapshot.mdin that draft folder. Start with a short warning block (this is not an authoritative enterprise SOP; synthesized from stated intent and optional LLM refine; provisional until a real document is attached). Then include the verbatimSOPStructure.raw_textfrom the structured object you used for drafting so reviewers can see exactly what the fallback produced.
- Intent-only snapshot (required when fallback) — If
- Install in the same workflow → Call
skills.import_localwithpath= absolute path to that draft directory (folder containingSKILL.md). Useforce: trueifget_agent_skills_dir() / <skill_name>already exists and should be replaced. Do not stop after step 3 and ask the user to import manually; promotion is part of this skill’s default completion.
After step 4, the new skill lives under get_agent_skills_dir() / <skill_name> (same directory tree the runtime loads user-installed skills from) and is available like any other installed skill.
Do not silently shrink generator-worker-spec when writing SKILL.md.
Invoking skill_generator_cli.py safely
- Always use the absolute path to
scripts/skill_generator_cli.py. httpx/beautifulsoup4forurl-fetch. Rich file formats need openjiuwenAutoFileParserwhen installed; otherwise use.md/.txtSOPs.
Path tables and skills.import_local: reference/operator-playbook.md.
Normative SKILL.md format (YAML frontmatter first)
The generated skill’s SKILL.md must start with --- YAML frontmatter, then ---, then the body. Optional: scripts/skill_gen/validator.py on the draft path before import.
When to open reference files
| File | When |
|---|---|
| reference/sop-structure-pipeline.md | Always: SOPStructure extraction. |
| reference/sop-recovery-and-interview-fallback.md | Always before intent-only fallback: recovery menu wording and ordering (Part 1). |
| reference/generator-worker-spec.md | Always: how to write a high-quality generated skill — Writing a high-quality SKILL.md (required structure) plus Skill writing guide. |
| reference/operator-playbook.md | CLI, paths, skills.import_local, canonical flow, directory table, SKILL.md frontmatter rules. |
Human approval gates
Do not modify this meta-skill’s SKILL.md, reference/sop-structure-pipeline.md, reference/generator-worker-spec.md, reference/operator-playbook.md, or other bundled reference/*.md while generating a user skill. Edit only the target skill under the workspace-relative skills-draft/<name>/ staging tree or the installed skills/<name>/ tree (resolve with get_agent_workspace_dir() / get_agent_skills_dir() when available).
Communicating with the user
- Prefer plain language for skill names and outcomes.
- Infer
skill_name(kebab-case) from title or URL when the user did not specify.
- 流狐分类
- 文档
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @openJiuwen-ai · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- 未声明
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 检测到的网络行为
- 允许外网请求
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Plain text Mandatory sequence when the user wanted a document but you still have no SOP plain text (wrong path, file not found, fetch failed, empty body, permission error, etc.): Recovery before fallback — Do not call buildintentfallbacksop,…
Always use the absolute path to scripts/skillgeneratorcli.py. httpx / beautifulsoup4 for url-fetch. Rich file formats need openjiuwen AutoFileParser when installed; otherwise use .md / .txt SOPs. Path tables and skills.importlocal:…
The generated skill’s SKILL.md must start with --- YAML frontmatter, then ---, then the body. Optional: scripts/skillgen/validator.py on the draft path before import.
File · When reference/sop-structure-pipeline.md · Always: SOPStructure extraction. reference/sop-recovery-and-interview-fallback.md · Always before intent-only fallback: recovery menu wording and ordering (Part 1).
Do not modify this meta-skill’s SKILL.md, reference/sop-structure-pipeline.md, reference/generator-worker-spec.md, reference/operator-playbook.md, or other bundled reference/.md while generating a user skill. Edit only the target skill under the…
Prefer plain language for skill names and outcomes. Infer skillname (kebab-case) from title or URL when the user did not specify.
# Skill Generator (enterprise doc → installed skill)
Instructions here, **`reference/`**, and **`scripts/`** (package **`scripts/skill_gen/`**). **You** obtain SOP plain text, run **full structured extraction** exactly as in **[reference/sop-structure-pipeline.md](./reference/sop-structure-pipeline.md)**, author the package under **`get_agent_workspace_dir() / "skills-draft"`** (per **[reference/generator-worker-spec.md](./reference/generator-worker-spec.md)**), then **immediately promote** it so the skill is **installed and loadable** (see **[reference/operator-playbook.md](./reference/operator-playbook.md)** canonical flow).
## What you do (high level)
1. **Plain text**
- **Mandatory sequence when the user wanted a document but you still have no SOP plain text** (wrong path, **file not found**, fetch failed, empty body, permission error, etc.):
1. **Recovery before fallback** — **Do not** call **`build_intent_fallback_sop`**, **`build_fallback_sop_structure`**, or generate the installable skill from intent-only fallback **in the same assistant turn** as that failure. A missing file is **only** a failed first ingest; it is **not** “no document” yet. Send **exactly one** recovery message first (single reply): offer a **corrected absolute path**, **URL**, or **paste**—same menu and tone as **[reference/sop-recovery-and-interview-fallback.md](./reference/sop-recovery-and-interview-fallback.md)** Part 1—and **wait** for the user’s next message (or treat recovery as already done if **one** recovery was sent earlier in the thread and the user **declined**, **ignored**, or **supplied** material afterward).
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> What you do (high level) → Invoking skillgeneratorcli.py safely → Normative SKILL.md format (YAML frontmatter first) → When to open reference files → Human approval gates → Communicating with the user
要点 -> reference/ · scripts/ · scripts/skillgen/ · You · full structured extraction · [reference/sop-structure-pipeline.md](./reference/sop-structure-pipeline.md) · getagentworkspacedir() / "skills-draft" · [reference/generator-worker-spec.md](./reference/generator-worker-spec.md)
文件/命令 -> reference/ · scripts/ · scripts/skillgen/ · getagentworkspacedir() / "skills-draft" · buildintentfallbacksop · buildfallbacksopstructure · python3 <ABS>/scripts/skillgeneratorcli.py sop-text --sop-file <abs-path> [--out-text <path>] · --print-raw-chars
内容 SHA-256 -> 8d642071f67f
原文结构
适用与边界
原文中的明确线索
reference/、scripts/、scripts/skillgen/、getagentworkspacedir() / "skills-draft"、buildintentfallbacksop、buildfallbacksopstructure、python3 <ABS>/scripts/skillgeneratorcli.py sop-text --sop-file <abs-path> [--out-text <path>]、--print-raw-chars