knowme-careerforge-skill 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/AGENT.md +7 -6
  2. package/ARCHITECTURE.md +21 -14
  3. package/README.md +36 -25
  4. package/README.zh-CN.md +36 -25
  5. package/SKILL.md +42 -27
  6. package/agents/claude/knowme-careerforge.md +1 -1
  7. package/agents/codex/knowme-careerforge.yaml +2 -18
  8. package/agents/cursor/knowme-careerforge.mdc +1 -1
  9. package/agents/gemini/knowme-careerforge.json +1 -1
  10. package/agents/opencode/skill.yaml +1 -1
  11. package/agents/windsurf/knowme-careerforge.rules +1 -1
  12. package/dist/cli/src/commands/init.js +51 -32
  13. package/dist/cli/src/index.js +22 -14
  14. package/package.json +1 -1
  15. package/references/01-evidence-mining.md +110 -3
  16. package/references/02-career-goal.md +36 -14
  17. package/references/03-jd-analysis.md +13 -15
  18. package/references/04-template-selection.md +27 -35
  19. package/references/05-html-canvas-tokens.md +4 -2
  20. package/references/06-qa-and-rendering.md +50 -3
  21. package/references/07-artifact-contract.md +39 -6
  22. package/scripts/Agent.md +3 -3
  23. package/scripts/build/build-gallery.py +2 -1
  24. package/scripts/build/release.py +3 -2
  25. package/scripts/evidence/analyze-jd.py +49 -8
  26. package/scripts/evidence/extract-evidence.py +17 -391
  27. package/scripts/pipeline/forge.py +165 -81
  28. package/scripts/rendering/browser-engine.js +47 -1
  29. package/scripts/template/instantiate-resume.py +5 -3
  30. package/scripts/template/search-template.py +9 -0
  31. package/skill.json +7 -6
  32. package/src/knowledge/career/seniority-signals.json +1 -0
  33. package/src/knowledge/index.json +176 -2
  34. package/src/knowledge/resume/action-verbs.json +3 -2
  35. package/src/knowledge/resume/fab-model.json +5 -4
  36. package/src/knowledge/resume-schema.json +1 -1
  37. package/src/knowledge/templates.json +174 -0
  38. package/src/references/01-evidence-mining.md +110 -3
  39. package/src/references/02-career-goal.md +36 -14
  40. package/src/references/03-jd-analysis.md +13 -15
  41. package/src/references/04-template-selection.md +27 -35
  42. package/src/references/05-html-canvas-tokens.md +4 -2
  43. package/src/references/06-qa-and-rendering.md +50 -3
  44. package/src/references/07-artifact-contract.md +39 -6
  45. package/src/templates/academic-research/canvas.html +2 -1
  46. package/src/templates/classic/canvas.html +2 -1
  47. package/src/templates/classic/style.css +90 -28
  48. package/src/templates/common/base.css +19 -3
  49. package/src/templates/common/canvas-bindings.css +248 -13
  50. package/src/templates/compact-dense/style.css +5 -1
  51. package/src/templates/creative-tech/style.css +30 -1
  52. package/src/templates/data-analyst/style.css +31 -1
  53. package/src/templates/editorial/README.md +7 -0
  54. package/src/templates/editorial/canvas.html +22 -0
  55. package/src/templates/editorial/metadata.json +36 -0
  56. package/src/templates/editorial/sample-profile.json +86 -0
  57. package/src/templates/editorial/style.css +24 -0
  58. package/src/templates/executive/style.css +52 -18
  59. package/src/templates/graduate/README.md +7 -0
  60. package/src/templates/graduate/canvas.html +22 -0
  61. package/src/templates/graduate/metadata.json +38 -0
  62. package/src/templates/graduate/sample-profile.json +60 -0
  63. package/src/templates/graduate/style.css +24 -0
  64. package/src/templates/international-flow/canvas.html +2 -1
  65. package/src/templates/minimal/README.md +3 -1
  66. package/src/templates/minimal/canvas.html +3 -2
  67. package/src/templates/minimal/style.css +6 -0
  68. package/src/templates/modern/style.css +43 -55
  69. package/src/templates/project-focus/README.md +7 -0
  70. package/src/templates/project-focus/canvas.html +22 -0
  71. package/src/templates/project-focus/metadata.json +36 -0
  72. package/src/templates/project-focus/sample-profile.json +93 -0
  73. package/src/templates/project-focus/style.css +24 -0
  74. package/src/templates/startup-generalist/canvas.html +2 -1
  75. package/src/templates/startup-generalist/style.css +15 -8
package/AGENT.md CHANGED
@@ -24,14 +24,13 @@
24
24
 
25
25
  保留用户提供的 Vercel 材料中的设计纪律:明确优先级、保护既有工程、分阶段工作、公共设计 API、清楚的阅读层级和单一间距归属。将这些原则用于本项目的工程与模板质量,不引入其品牌资产、`vbg-*` CSS、在线字体或网站主题要求。
26
26
 
27
- 基础设计与演进背景见 [设计说明](docs/dev/RESUME_ENGINEERING_SKILL_DESIGN.md)。历史设想、当前实现和已验证能力应明确区分。
27
+ 基础设计与演进背景见 [设计说明](docs/dev/dev-resume-engineering-skill-design.md)。历史设想、当前实现和已验证能力应明确区分。
28
28
 
29
29
  ### 1.3 文档职责
30
30
 
31
31
  | 文档或目录 | 责任 |
32
32
  | --- | --- |
33
33
  | `README.md` / `README.zh-CN.md` | 项目定位、能力与使用入口 |
34
- | `AGENTS.md` | 标准开发入口,仅引用规范正文和目录级规则 |
35
34
  | `AGENT.md` | 唯一维护的项目级开发规范正文:AI 开发行为、架构约束、设计规范和变更验收 |
36
35
  | `ARCHITECTURE.md` | 系统分层、模块接口、数据流和架构决策导航 |
37
36
  | `CLAUDE.md` | 开发环境与命令速查,引用共同规范 |
@@ -72,9 +71,9 @@
72
71
 
73
72
  ### 1.6 Agent Skills 标准与本项目的关系
74
73
 
75
- `AGENTS.md` / 本文约束开发;`SKILL.md` 定义按需加载的产品能力,两者有不同生命周期。开发仓库可以包含架构、测试、发布工具;安装包必须独立满足入口、资源与运行依赖,不能依赖源码工作区恰好存在。
74
+ 本文约束开发;`SKILL.md` 定义按需加载的产品能力,两者有不同生命周期。开发仓库可以包含架构、测试、发布工具;安装包必须独立满足入口、资源与运行依赖,不能依赖源码工作区恰好存在。
76
75
 
77
- 详细的标准对照、当前分发缺口和验收方案见 [Agent Skills 设计评审](docs/dev/AGENT_SKILLS_DESIGN_REVIEW.md)。修改入口、元数据、安装器或平台适配时阅读该文档;普通模板样式修改不必加载整份评审。
76
+ 详细的标准对照、当前分发缺口和验收方案见 [Agent Skills 设计评审](docs/dev/dev-agent-skills-design-review.md)。修改入口、元数据、安装器或平台适配时阅读该文档;普通模板样式修改不必加载整份评审。
78
77
 
79
78
  ## 2. Priority Order (Strict Decision Hierarchy)
80
79
 
@@ -123,7 +122,7 @@
123
122
 
124
123
  - **资料契约**:姓名、日期、学历、职责、指标忠于显式输入;缺失/null 保持未知。未知字段和错误类型报错,教育、工作、项目分别完整绑定。保留可选来源标记,不把用户口述自动降级。
125
124
  - **生命周期**:Draft 不自动升级为已验收资料;Master 保存已知事实快照;Variant 记录来源 Master 的摘要。摘要用于版本追溯,不证明事实真实性。
126
- - **运行隔离**:每次 forge 创建独立 `workspace/runs/<runId>/`;保留输入和失败现场,不读取共享默认文件判断本次成功,不反写用户输入。
125
+ - **运行隔离**:每次 forge 在私有临时工作区隔离处理;默认仅发布当前 HTML/PDF,正常成功或失败后清理本次临时文件。仅显式 `--keep-workspace`/`--workspace` 保留输入和失败归档;不读取共享默认文件判断本次成功,不反写或清理用户输入。
127
126
  - **模板结构**:每套模板只维护 `canvas.html`。命名槽位必须完整、唯一且上下文合法;一次绑定并转义用户文本,失败不能交付未绑定样例。
128
127
  - **展示数据**:`sample-profile.json` 只保存明确虚构的画廊资料;预览通过正式实例化器与完整 CSS 链生成到 `output/`,不能成为用户数据默认值。
129
128
  - **样式组合**:依次内联 `common/base.css`、模板 `style.css`、`common/canvas-bindings.css`,再应用显式字体预设。模板差异用结构与 Token 表达,不新增平行主题系统。
@@ -205,6 +204,8 @@
205
204
 
206
205
  ## 6. Development Delivery & Documentation Protocol
207
206
 
207
+ `docs/dev/` 中开发设计、审查和计划文档统一使用 `dev-<主题>.md` 小写连字符命名,历史版本与日期可保留。当前规划入口为 [开发导航与下一阶段规划](docs/dev/dev-roadmap.md)。该规则不改变根目录 `AGENT.md`、`ARCHITECTURE.md`、运行 `SKILL.md` 或 `docs/decisions/` 的编号规则。重命名同时修正引用,保留仍有效的正文和历史验证范围。
208
+
208
209
  交付本项目的修改时,说明问题与修改后的行为、涉及模块、实际执行的验证及未解决限制,并提供文件链接。这里交付的是项目改动;使用 Skill 制作简历时的候选人定位和简历产物格式由 `SKILL.md` 管理。
209
210
 
210
211
  - 架构或公共接口变更更新 `ARCHITECTURE.md`;影响长期取舍时在 `docs/decisions/` 记录依据。
@@ -257,7 +258,7 @@
257
258
  - `references/` 是运行文档的维护来源;存在 `src/references/` 兼容副本时须检查同步。不要再生成第三份需要手工维护的规则。
258
259
  - 安装包应包含所引用的脚本、Schema、CSS、知识资产和可复现的依赖准备信息。复制了 `SKILL.md` 不等于依赖就绪;依赖安装与格式校验分别报告。
259
260
  - 平台适配保持薄层,只说明宿主所需入口及已安装资源的明确位置。只写 MDC/rules/JSON 的路径属于提示适配,除非另行准备了完整工具包,否则不能宣称完成原生 Skill 安装。
260
- - 不向用户项目根目录投放本仓库开发用 `AGENTS.md`;运行时不得要求用户加载本项目开发规范才能制作简历。开发文件随归档保留时也不成为产品运行前置条件。
261
+ - 不向用户项目根目录投放本仓库开发规范 `AGENT.md`;运行时不得要求用户加载本项目开发规范才能制作简历。开发文件随归档保留时也不成为产品运行前置条件。
261
262
  - 安装、升级、覆盖和联网下载须遵守任务授权与宿主权限。安装失败、部分成功和依赖缺失要可识别;禁止末尾统一输出“安装成功”。
262
263
 
263
264
  宿主发现、激活、上下文管理和权限执行属于客户端职责。本项目提供可消费的目录与工作流,不为格式兼容额外实现 Agent 注册中心或调度框架。支持范围应以实际平台验证记录为准。
package/ARCHITECTURE.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ---
8
8
 
9
- The host Agent collects and interprets user-supplied experience, existing resumes and explicitly supplied supporting material, then tailors wording to the target role. Tools validate structured data, bind HTML, measure print output and accept the final PDF. Repository analysis is not a supported resume input path. Optional legacy L1~L3 labels describe provenance, not independent verification.
9
+ The host Agent collects and interprets user-supplied experience, existing resumes and explicitly supplied supporting material, expands terse descriptions into supported professional claims, and selects evidence for the target role. Role knowledge and writing patterns guide ability synthesis and focused questions; they do not provide candidate facts. Content-only requests end with polished prose without invoking the rendering pipeline. Tools validate structured data, bind HTML, measure print output and accept the final PDF. Repository analysis is not a supported resume input path. Optional legacy L1~L3 labels describe provenance, not independent verification.
10
10
 
11
11
  This document preserves the system design and module boundaries. `AGENT.md` governs AI development and architecture changes in this repository; `SKILL.md` governs using the Skill to create resumes. Current lifecycle, field and error semantics are defined in [references/07-artifact-contract.md](references/07-artifact-contract.md); roadmap documents describe planned work and must not be treated as implemented capabilities.
12
12
 
@@ -18,7 +18,7 @@ KnowMe CareerForge adopts a progressive 4-tier documentation architecture to ens
18
18
  ┌────────────────────────────────────────────────────────────────────────────────────────┐
19
19
  │ KnowMe CareerForge 4-Tier Documentation Pyramid │
20
20
  ├────────────────────────────────────────────────────────────────────────────────────────┤
21
- │ L0: Platform Distribution │ SKILL.md (Agent 6-Stage Reasoning Contract) + skill.json │
21
+ │ L0: Platform Distribution │ SKILL.md (User Facts & Delivery Workflow) + skill.json │
22
22
  ├───────────────────────────┼────────────────────────────────────────────────────────────┤
23
23
  │ L1: Agent & Dev Contracts │ CLAUDE.md (Developer Command Cheat Sheet & Guidelines) │
24
24
  │ │ AGENT.md (AI Development & Architecture Guidelines)│
@@ -44,7 +44,7 @@ KnowMe CareerForge adopts a progressive 4-tier documentation architecture to ens
44
44
  │ CLI Dynamic Config Injection
45
45
  ┌──────────────────────────────────────▼──────────────────────────────────────┐
46
46
  │ 2. Skill Execution Core Layer (Agent Reasoning Contract) │
47
- │ SKILL.md (6-Stage Pipeline) │ AGENT.md (Development & Architecture Rules)│
47
+ │ SKILL.md (Intake → Facts → Forge → Review → Delivery)│
48
48
  └──────────────────────────────────────┬──────────────────────────────────────┘
49
49
  │ Python Toolchain / CLI Invocation
50
50
  ┌──────────────────────────────────────▼──────────────────────────────────────┐
@@ -85,31 +85,32 @@ sequenceDiagram
85
85
  participant Browser as Shared Browser Engine
86
86
 
87
87
  User->>Agent: Experience, existing resume, supporting material, target JD
88
- Agent->>Agent: Organize Draft, clarify needed facts, prepare Master
88
+ Agent->>Agent: Organize supplied facts, clarify consequential gaps
89
89
  Agent->>Engine: Analyze JD and select template
90
- Agent->>Engine: forge.py --profile-json master.json
90
+ Agent->>Engine: forge.py --profile-json - (facts on stdin)
91
91
  Engine->>Engine: Create unique run, snapshot input, validate profile
92
- Engine->>Engine: Save Master and source-linked Variant
92
+ Engine->>Engine: Prepare Master and source-linked Variant in private staging
93
93
  Engine->>Engine: Bind canvas.html with full CSS chain
94
94
  Engine->>Browser: Measure print DOM for all pages
95
95
  Browser->>Browser: Generate fresh PDF; inspect geometry and per-page text
96
96
  alt Required checks and final PDF acceptance pass
97
97
  Browser-->>Engine: Publish accepted bytes and hashes
98
- Engine-->>Agent: PASS manifest and current-run artifacts
98
+ Engine->>Engine: Publish current HTML/PDF pair; clean temporary staging
99
+ Engine-->>Agent: PASS, delivery paths and accepted hashes
99
100
  Agent->>Agent: Review facts, typography and reading order
100
101
  Agent-->>User: Deliver artifact links and review outcome
101
102
  else Validation fails or cannot complete
102
103
  Browser-->>Engine: FAIL or UNVERIFIED with diagnostics
103
- Engine-->>Agent: Retained run and error manifest; no delivery outputs
104
+ Engine-->>Agent: Error diagnostics; no delivery outputs (archive only if requested)
104
105
  Agent-->>User: Actual status and corrective next step
105
106
  end
106
107
  ```
107
108
 
108
109
  The host Agent owns semantic editing and evidence selection. The current forge script preserves supplied entries and applies explicit basic-field/title overrides; it does not autonomously infer a career narrative from repositories. Draft mode produces a draft canvas without final PDF acceptance. Manual canvas edits remain editable artifacts; do not overwrite them by replaying stale input.
109
110
 
110
- Each invocation creates `workspace/runs/<runId>/` containing the input snapshot, Master/Variant (or Draft), HTML, QA, manifest and an accepted PDF when successful. `--workspace` changes the parent, not run isolation. Master and Variant are independent documents linked by a normalized profile hash, which tracks versions rather than truth. Missing/null optional fields remain unknown; malformed types and unknown fields fail. Supplied education, work and project arrays are preserved independently.
111
+ Each invocation creates private staging containing the input snapshot, Master/Variant (or Draft), HTML, QA and an accepted PDF when successful. Staging is temporary by default: only the current HTML/PDF pair is published, and intermediates are removed on ordinary success or failure. Explicit `--keep-workspace` or `--workspace <dir>` retains a unique archive; the latter preserves the old explicit-workspace behavior. `--profile-json -` avoids a permanent input file; `--html-input -` lets edited HTML pass through the same acceptance and paired-publication path without reconstructing profiles. Master and Variant are independent documents linked by a normalized profile hash, which tracks versions rather than truth. Missing/null optional fields remain unknown; malformed types and unknown fields fail. Supplied education, work and project arrays are preserved independently.
111
112
 
112
- The current manifest is authoritative: `RUNNING` is intermediate, `DRAFT` is not PDF acceptance, `PASS` records accepted artifacts, `FAIL` denotes a rejected operation, and `UNVERIFIED` denotes unavailable or incomplete checking. Old output existence cannot imply success. See the artifact contract for exit codes and required report fields.
113
+ The current invocation result (and manifest when archived) is authoritative: `RUNNING` is intermediate, `DRAFT` is not PDF acceptance, `PASS` records accepted artifacts, `FAIL` denotes a rejected operation, and `UNVERIFIED` denotes unavailable or incomplete checking. Old output existence cannot imply success. See the artifact contract for exit codes and required report fields.
113
114
 
114
115
 
115
116
  ---
@@ -134,8 +135,8 @@ Following the **Codebase Design (Deep Modules)** philosophy, complex logic is en
134
135
  ### 4.3 Profile & Run Orchestration Seam
135
136
 
136
137
  - **Contract**: `scripts/contracts/profile.py` and `src/knowledge/resume-schema.json` define normalization shared across Draft, Master and Variant. Raw legacy profile JSON remains accepted as explicit Master input; wrapped documents carry lifecycle and provenance.
137
- - **Orchestration**: `scripts/pipeline/forge.py` snapshots input, creates the isolated run, binds the Variant, checks QA protocol/status consistency and accepted-file hashes, then records delivery in the manifest.
138
- - **Publication**: Requested output copies are staged only after acceptance. Ordinary copy failures roll back, and destination locks prevent tool processes from interleaving copies. Cross-file publication is not a crash-safe filesystem transaction; canonical run artifacts and the manifest remain authoritative.
138
+ - **Orchestration**: `scripts/pipeline/forge.py` snapshots input, creates the isolated run, binds the Variant, checks QA protocol/status consistency and accepted-file hashes, then returns delivery paths and hashes. Full manifests are retained only for explicit archives.
139
+ - **Publication**: Requested output copies are staged only after acceptance. Ordinary copy failures roll back, and destination locks prevent tool processes from interleaving copies. Cross-file publication is not a crash-safe filesystem transaction; the current result identifies accepted bytes; an explicit archive additionally retains canonical run artifacts and its manifest.
139
140
 
140
141
  ### 4.4 Rendering & Acceptance Seam
141
142
 
@@ -197,7 +198,7 @@ Key architectural choices are formally documented in `docs/decisions/`. ADRs rec
197
198
 
198
199
  Detailed iteration specifications and roadmap tasks are governed in:
199
200
 
200
- - [v0.0.6 Iteration Plan & Engineering Specification](docs/dev/ITERATION_PLAN_V0.0.6_EXPERIENCE_EXPANSION.md)
201
+ - [v0.0.6 Iteration Plan & Engineering Specification](docs/dev/dev-iteration-plan-v0.0.6-experience-expansion.md)
201
202
 
202
203
 
203
204
  ### Current implementation and verification
@@ -213,4 +214,10 @@ Tests use temporary directories and cover sparse/invalid facts, multiple educati
213
214
 
214
215
  Discovery metadata, activated instructions and conditional resources have separate loading costs. Keep development governance in `AGENT.md` and detailed runtime rules in `references/`. Package verification must cover dependencies and execution from outside the source checkout, separately from source-tree tests and Agent behavior evaluation.
215
216
 
216
- The current initializer has unresolved packaging and partial-success gaps; native-platform compatibility is not established by copying a prompt or passing local PDF tests. See [Agent Skills design review](docs/dev/AGENT_SKILLS_DESIGN_REVIEW.md) for evidence, target boundaries and acceptance criteria, and `AGENT.md` section 7 for maintenance rules.
217
+ The initializer now copies runtime package metadata for full bundles, reports dependency preparation separately, and returns a nonzero exit on platform failures. Source installations retain package-lock.json when available; npm archives omit it and require npm install rather than npm ci. Cursor/Windsurf adapters now point to a project-local `.knowme/skills/knowme-careerforge` bundle; Gemini configuration points to its sibling runtime bundle by absolute entrypoint. Windsurf replaces its managed block on subsequent installs. Native-platform compatibility is not established by copying a prompt or passing local PDF tests. See [Agent Skills design review](docs/dev/dev-agent-skills-design-review.md) for evidence, target boundaries and acceptance criteria, and `AGENT.md` section 7 for maintenance rules.
218
+
219
+ Runtime readiness is exposed by `browser-engine.js --check-runtime` (READY/UNVERIFIED); it does not certify a resume. `forge.py` defaults to compact stdout and temporary staging; explicit archives preserve the full report and support `--summary`. A null manifest denotes clean mode, not a missing artifact. See [the clean-output decision](docs/decisions/0007-clean-delivery-and-optional-archives.md) for compatibility and recovery boundaries.
220
+
221
+ For interactive layout selection, `search-template.py --summary` exposes only the top three IDs, names, scores and layouts. Full `--json` output and the programmatic ranking interface are unchanged. Source-to-claim review in `references/01-evidence-mining.md` remains an Agent responsibility and is distinct from deterministic profile/PDF text consistency.
222
+
223
+ Retired extraction entrypoints (`knowme extract`, `npm run extract`, and `scripts/evidence/extract-evidence.py`) share a fail-only compatibility entry: no repository scan or profile publication. Unknown CLI commands fail; interactive stdin without a payload is rejected before staging.
package/README.md CHANGED
@@ -46,8 +46,8 @@ Self Discovery Tailored Career Story
46
46
  & Evidence & Engineering Delivery
47
47
  ```
48
48
 
49
- - **KnowMe (Self-Discovery & Evidence Engine)**: Helps candidates discover who they are, uncover their verifiable career evidence (L1~L3), and map their true competitive strengths.
50
- - **CareerForge (Career Positioning & Resume Engineering)**: Translates genuine strengths into targeted positioning for specific job opportunities, tailoring high-impact content inside an **HTML Intermediate Working Canvas** with **Design Tokens**, and delivering deterministic, pixel-perfect PDFs via Playwright.
49
+ - **KnowMe (Self-Discovery & Evidence Engine)**: Helps candidates discover who they are, organize their supplied career experience and supporting material, and map their true competitive strengths.
50
+ - **CareerForge (Career Positioning & Resume Engineering)**: Translates genuine strengths into targeted positioning for specific job opportunities, tailoring high-impact content inside an **HTML Intermediate Working Canvas** with **Design Tokens**, and delivering PDFs checked for print layout and text integrity via Playwright.
51
51
 
52
52
  ---
53
53
 
@@ -97,37 +97,42 @@ knowme list
97
97
 
98
98
  ---
99
99
 
100
- ### Option B: Direct Agent Integration
100
+ ### Platform entrypoints and runtime resources
101
101
 
102
- | Platform | Target Configuration Path | Setup Command |
103
- | :--- | :--- | :--- |
104
- | **Cursor** | `.cursor/rules/knowme-careerforge.mdc` | `cp SKILL.md .cursor/rules/knowme-careerforge.mdc` |
105
- | **Claude Code** | `~/.claude/skills/knowme-careerforge/` | `cp -r knowme-careerforge-skill ~/.claude/skills/` |
106
- | **Codex** | `~/.codex/skills/knowme-careerforge/` | `cp -r knowme-careerforge-skill ~/.codex/skills/` |
107
- | **Windsurf** | `.windsurfrules` | `cat agents/windsurf/knowme-careerforge.rules >> .windsurfrules` |
108
- | **OpenCode** | `.opencode/skills/knowme-careerforge/` | `cp -r knowme-careerforge-skill ~/.opencode/skills/` |
102
+ | Platform | Entry location | Configuration command |
103
+ | --- | --- | --- |
104
+ | Claude Code | `~/.claude/skills/knowme-careerforge/SKILL.md` | `knowme init --ai claude` |
105
+ | Codex | `~/.codex/skills/knowme-careerforge/SKILL.md` | `knowme init --ai codex` |
106
+ | Cursor | `.cursor/rules/knowme-careerforge.mdc` | `knowme init --ai cursor` |
107
+ | Windsurf | Managed block in `.windsurfrules` | `knowme init --ai windsurf` |
108
+ | Gemini | `~/.gemini/skills/knowme-careerforge.json` | `knowme init --ai gemini` |
109
+ | OpenCode | `.opencode/skills/knowme-careerforge/SKILL.md` | `knowme init --ai opencode` |
110
+
111
+ Cursor/Windsurf reference a project-local `.knowme/skills/knowme-careerforge/` runtime; Gemini configuration points to its sibling runtime directory. Each routes to the same SKILL.md workflow. File installation does not certify host discovery or behavior. Copying a prompt alone is insufficient. Rerun init after relocating an installation to refresh entry paths.
109
112
 
110
113
  ---
111
114
 
112
115
  ## 4. User input and artifact lifecycle
113
116
 
114
- The host Agent organizes user descriptions, existing resume material and explicitly supplied supporting evidence. Repository-to-resume extraction is not supported. A target role is sufficient; a JD is optional.
117
+ The host Agent organizes user descriptions, existing resume material and explicitly supplied supporting evidence. Repository-to-resume extraction is not supported. A target role starts intake; a JD is optional. Without candidate material, ask and wait rather than generating an example.
115
118
 
116
119
  Draft retains incomplete information, Master preserves supplied facts, and Variant records its source Master hash for a target role. Missing values stay omitted/null; sample people, default honors and invented metrics never fill gaps. See the [artifact and acceptance contract](references/07-artifact-contract.md).
117
120
 
118
121
  ## 5. Isolated runs and final acceptance
119
122
 
120
- Each forge invocation writes snapshots, Master, Variant, canvas, QA and manifest to `workspace/runs/<runId>/`. Only an accepted fresh PDF is published. Failed manifests never identify an old output as delivery. Optional `--output` and `--html-output` create verified copies.
123
+ Default generation uses private temporary staging and leaves only `resume/resume.html` and `resume/resume.pdf` in the candidate directory. `--profile-json -` accepts facts on stdin without a permanent input file; `--html-input -` accepts edited HTML through the same acceptance and paired-publication path. Failure preserves old delivery files; ordinary completion cleans temporary staging. Use `--output` and `--html-output` for explicit destinations.
124
+
125
+ Request `--keep-workspace` for diagnostic archives; existing explicit `--workspace <dir>` calls still retain full runs. `manifest: null` is expected in default clean output, and `--summary` is not a file-retention switch. Existing user inputs and old workspaces are never swept or deleted.
121
126
 
122
127
  Checks run in print mode across every page, then parse the final PDF's page dimensions and extracted text. PASS means current checks passed; FAIL means a check failed; UNVERIFIED means inspection could not complete; DRAFT means draft preparation only. Automated checks do not certify factual truth or every ATS.
123
128
 
124
- Requires Python 3.9+, Node.js 22.13+, npm runtime dependencies and Chromium. Run `npm install`; use `npx playwright install chromium` if no system Chromium is available.
129
+ Prepare dependencies in the installed runtime as instructed by init (`npm ci --omit=dev` with a lockfile, otherwise `npm install --omit=dev`), then run `node scripts/rendering/browser-engine.js --check-runtime`. Python 3.9+, Node.js 22.13+ and Chromium are required. READY is runtime readiness, not resume acceptance. Deliver one current PDF and editable HTML by default; `forge.py` defaults to concise stdout; full snapshots and diagnostics remain only in explicit archive mode.
125
130
 
126
131
  ---
127
132
 
128
133
  ## 6. Token Self-Healing & Visual Tuning Cheat Sheet
129
134
 
130
- All visual parameters are concentrated in `:root` variables inside the current run’s `resume.html`:
135
+ All visual parameters are concentrated in `:root` variables inside the current delivery `resume/resume.html`:
131
136
 
132
137
  | CSS Token | Default | Compact (1-Page Squeeze) | Relaxed (2-Page Flow) | Purpose |
133
138
  | :--- | :--- | :--- | :--- | :--- |
@@ -142,6 +147,8 @@ All visual parameters are concentrated in `:root` variables inside the current r
142
147
 
143
148
  ## 7. Core Templates Matrix
144
149
 
150
+ The four core templates below are a subset of thirteen available layouts. ATS tiers are internal design categories, not external certification. PDF appearance depends on the browser and installed fonts; cross-machine pixel identity is not guaranteed.
151
+
145
152
  | Template ID | Style | Category | ATS Tier | Best For | Target Pages |
146
153
  | :--- | :--- | :--- | :--- | :--- | :--- |
147
154
  | **`minimal`** | Single-Column Minimal | Tech / AI | Tier 1 (Optimal) | Backend, Algorithms, AI Research, Systems | 1 Page |
@@ -149,29 +156,31 @@ All visual parameters are concentrated in `:root` variables inside the current r
149
156
  | **`executive`** | Executive Banner + 33:67 | Leadership / Product | Tier 1 (Optimal) | Tech Director, Chief Architect, Tech Lead | 1~2 Pages |
150
157
  | **`classic`** | Structured Table Grid | Corporate / Gov | Tier 1 (Optimal) | State Enterprises, Finance, Hardware, Civil | 1 Page |
151
158
 
159
+ Content-led additions: `editorial` (experience first, section rail), `graduate` (education and projects first), and `project-focus` (projects first). Each uses an explicit single A4 page with 9.5pt body text. Select for actual supplied content, not assumed qualifications.
160
+
161
+
152
162
  ---
153
163
 
154
164
  ## 8. CLI & Script Reference
155
165
 
156
166
  ```bash
157
- # 1. One-shot resume engineering pipeline (user facts -> canvas -> QA -> PDF)
158
- knowme forge --profile-json candidate.json --role "AI Agent Engineer" --template modern --quiet
167
+ # 1. Generate from an existing user-provided facts file
168
+ knowme forge --profile-json candidate.json --role "AI Agent Engineer"
159
169
 
160
- # 2. Search best template for target role (hybrid engine)
161
- knowme search --role "AI Agent Engineer" --engine hybrid
170
+ # 2. Update the current pair: supply complete edited HTML on stdin
171
+ knowme forge --html-input -
162
172
 
163
- # 3. Prepare an incomplete draft without PDF delivery
173
+ # 3. Explicitly requested draft; no PDF
164
174
  knowme forge --profile-json draft.json --draft
165
175
 
166
- # 4. Validate working canvas layout & ATS compliance
167
- knowme validate /path/to/current-run/resume.html --json
168
-
169
- # 5. Render deterministic pixel-perfect PDF
170
- knowme render --input workspace/resume.html --output output/resume.pdf
176
+ # 4. Optional template search
177
+ knowme search --role "AI Agent Engineer" --engine hybrid --summary
171
178
 
172
- # 6. Build & view static HTML Template Gallery
179
+ # 5. Development gallery, using fictional data
173
180
  knowme gallery
174
181
  ```
182
+ Use forge for normal generation and updates. Feed stdin through the host command tool; never interpolate candidate text into shell code. Files above are existing inputs, not required new artifacts. Independent `knowme validate` / `knowme render` commands are diagnostic tools; they do not publish a verified HTML/PDF pair. `knowme extract`, `npm run extract` and the legacy Python entry all reject repository extraction without reading repositories or writing profiles.
183
+
175
184
  ---
176
185
 
177
186
  ## Automated Test Suite
@@ -202,3 +211,5 @@ See the full [NPM Publishing & Update Guide](docs/PUBLISHING.md) for step-by-ste
202
211
  ## 11. License
203
212
 
204
213
  This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
214
+
215
+ Development: [guidelines](AGENT.md) · [document review and next-stage roadmap](docs/dev/dev-roadmap.md).
package/README.zh-CN.md CHANGED
@@ -46,8 +46,8 @@ knowme-careerforge-skill
46
46
  真实经历与证据 工程化定制交付
47
47
  ```
48
48
 
49
- - **KnowMe(自我认知与证据挖掘引擎)**:帮助候选人深入认知自我,系统梳理真实经历与可验证的代码/项目证据(L1~L3 分级),提炼真正具备竞争壁垒的优势点。
50
- - **CareerForge(职业定位与简历工程引擎)**:将候选人的真实优势精准对齐目标岗位(JD),以 **HTML 中间工作区(Intermediate Canvas)** 与 **Design Tokens(设计系统变量)** 为工作场进行微调排版,最终通过 Playwright 无头浏览器导出确定性、像素级的矢量 PDF。
49
+ - **KnowMe(自我认知与证据挖掘引擎)**:帮助候选人深入认知自我,系统梳理用户提供的真实经历与辅助材料,提炼真正具备竞争壁垒的优势点。
50
+ - **CareerForge(职业定位与简历工程引擎)**:将候选人的真实优势精准对齐目标岗位(JD),以 **HTML 中间工作区(Intermediate Canvas)** 与 **Design Tokens(设计系统变量)** 为工作场进行微调排版,最终通过 Playwright 无头浏览器导出经过打印布局与文本验收的矢量 PDF。
51
51
 
52
52
  ---
53
53
 
@@ -99,37 +99,42 @@ knowme list
99
99
 
100
100
  ---
101
101
 
102
- ### 方式 B:Agent 平台原生手动配置
102
+ ### 平台入口与运行资源
103
103
 
104
- | 平台 | 目标注入路径 | 配置方法 |
105
- | :--- | :--- | :--- |
106
- | **Cursor** | `.cursor/rules/knowme-careerforge.mdc` | `cp SKILL.md .cursor/rules/knowme-careerforge.mdc` |
107
- | **Claude Code** | `~/.claude/skills/knowme-careerforge/` | `cp -r knowme-careerforge-skill ~/.claude/skills/` |
108
- | **Codex** | `~/.codex/skills/knowme-careerforge/` | `cp -r knowme-careerforge-skill ~/.codex/skills/` |
109
- | **Windsurf** | `.windsurfrules` | `cat agents/windsurf/knowme-careerforge.rules >> .windsurfrules` |
110
- | **OpenCode** | `.opencode/skills/knowme-careerforge/` | `cp -r knowme-careerforge-skill ~/.opencode/skills/` |
104
+ | 平台 | 入口位置 | 配置命令 |
105
+ | --- | --- | --- |
106
+ | Claude Code | `~/.claude/skills/knowme-careerforge/SKILL.md` | `knowme init --ai claude` |
107
+ | Codex | `~/.codex/skills/knowme-careerforge/SKILL.md` | `knowme init --ai codex` |
108
+ | Cursor | `.cursor/rules/knowme-careerforge.mdc` | `knowme init --ai cursor` |
109
+ | Windsurf | `.windsurfrules` 的托管块 | `knowme init --ai windsurf` |
110
+ | Gemini | `~/.gemini/skills/knowme-careerforge.json` | `knowme init --ai gemini` |
111
+ | OpenCode | `.opencode/skills/knowme-careerforge/SKILL.md` | `knowme init --ai opencode` |
112
+
113
+ Cursor/Windsurf 的运行资源位于项目 `.knowme/skills/knowme-careerforge/`,配置中写入准确入口;Gemini 配置指向同级运行目录。所有入口引用同一个 SKILL.md 工作流。安装完成表示文件已准备,宿主发现与实际行为需分别验证;不应只复制提示文件就认为工具可运行。移动安装目录后重新运行 init 更新路径。
111
114
 
112
115
  ---
113
116
 
114
117
  ## 4. 用户信息与资料生命周期
115
118
 
116
- 当前功能依靠用户描述、已有简历和明确提供的支持材料,由宿主 Agent 组织与定制内容;不支持代码仓库分析回填。目标岗位即可开始,JD 可选。
119
+ 当前功能依靠用户描述、已有简历和明确提供的支持材料,由宿主 Agent 组织与定制内容;不支持代码仓库分析回填。目标岗位即可开始收集资料,JD 可选;没有候选人材料时先提问并等待,不生成演示履历。
117
120
 
118
121
  Draft 保留不完整资料,Master 保存本次已知事实,Variant 记录来源 Master 的摘要并派生岗位表达。缺失值省略或 null,不补示例姓名、默认荣誉和任意指标。完整规则见 [资料与验收契约](references/07-artifact-contract.md)。
119
122
 
120
123
  ## 5. 独立运行与最终验收
121
124
 
122
- 每次 forge 在 `workspace/runs/<runId>/` 保存输入快照、Master、Variant、画布、QA 和运行清单。通过验收后才写入本次 PDF;失败的清单不会返回旧文件作为交付。可以用 `--output` 和 `--html-output` 指定已验收副本位置。
125
+ 默认生成在系统临时目录完成装配与验收,只在用户目录保留 `resume/resume.html` 和 `resume/resume.pdf`。`--profile-json -` 从标准输入接收资料,不必新建 profile 文件;`--html-input -` 接收编辑后的 HTML,经同一验收流程一起更新当前 HTML/PDF。失败保留旧交付,正常结束清理本次临时文件。`--output` 和 `--html-output` 可指定交付位置。
126
+
127
+ 需要诊断归档时显式使用 `--keep-workspace`;旧的显式 `--workspace <dir>` 调用仍保留完整运行记录。默认报告中的 `manifest: null` 是预期行为,`--summary` 不再是控制文件数量的方式。工具不清理用户已有输入或旧版工作区。
123
128
 
124
129
  打印模式会检查所有页面,再解析最终 PDF 的每页尺寸与文本。PASS 表示本次检查通过;FAIL 是检查失败;UNVERIFIED 是浏览器/依赖等导致无法验收;DRAFT 只表示草稿准备完成。自动检查不等同于事实核实或通用 ATS 认证。
125
130
 
126
- 需要 Python 3.9+、Node.js 22.13+ 和 npm 运行依赖。运行 `npm install`;没有系统 Chromium 时使用 `npx playwright install chromium`。
131
+ 在安装目录按 init 提示准备依赖(有锁文件时 `npm ci --omit=dev`,否则 `npm install --omit=dev`),再运行 `node scripts/rendering/browser-engine.js --check-runtime`。需要 Python 3.9+、Node.js 22.13+ 与可用 Chromium。运行预检 READY 不表示简历已验收。默认只交付一个版本的 PDF 和可编辑 HTML;`forge.py` 默认精简终端输出;完整快照与诊断仅在显式归档模式保留。
127
132
 
128
133
  ---
129
134
 
130
135
  ## 6. CSS Design Tokens 调优与自愈速查表
131
136
 
132
- 所有排版参数均集中在当前运行目录的 `resume.html` 的 `:root` 变量中,可进行全局即时微调:
137
+ 所有排版参数均集中在当前交付文件 `resume/resume.html` 的 `:root` 变量中,可进行全局即时微调:
133
138
 
134
139
  | CSS Token 变量名 | 默认推荐值 | 紧凑模式 (单页微调) | 宽松模式 (双页饱满) | 调优核心作用 |
135
140
  | :--- | :--- | :--- | :--- | :--- |
@@ -144,6 +149,8 @@ Draft 保留不完整资料,Master 保存本次已知事实,Variant 记录
144
149
 
145
150
  ## 7. 首期 4 款黄金基准模板
146
151
 
152
+ 下表列出十三套现有布局中的四套核心模板。ATS 等级属于内部设计分类,不代表外部认证;PDF 视觉效果取决于浏览器和本机字体,不保证跨机器像素一致。
153
+
147
154
  | 模板 ID | 版式风格 | 岗位分类 | ATS 评级 | 适用人群与设计特质 | 目标页数 |
148
155
  | :--- | :--- | :--- | :--- | :--- | :--- |
149
156
  | **`minimal`** | 单栏极简线性流 | 研发 / AI | Tier 1 (极佳) | 后端、算法、系统、AI 工程师;强调技术胶囊与代码证据 | 1 页 |
@@ -151,29 +158,31 @@ Draft 保留不完整资料,Master 保存本次已知事实,Variant 记录
151
158
  | **`executive`** | 墨黑顶栏 + 33:67 双栏 | 管理 / 产品 | Tier 1 (极佳) | 技术总监、首席架构师、Team Lead;突出领导力与重大项目 | 1~2 页 |
152
159
  | **`classic`** | 现代结构化表格网格 | 综合 / 政企 | Tier 1 (极佳) | 国企、金融科技、政企合规岗位;6列矩阵,最高信息密度 | 1 页 |
153
160
 
161
+ 新增内容导向模板:`editorial`(经历优先与章节侧标)、`graduate`(教育与项目优先)、`project-focus`(项目优先)。三套均为显式单页 A4,正文默认 9.5pt;选择以实际内容和用户偏好为准,不能根据岗位名称补造经历。
162
+
163
+
154
164
  ---
155
165
 
156
166
  ## 8. CLI 命令参考
157
167
 
158
168
  ```bash
159
- # 1. 一键全流程装配管线(用户资料 -> HTML画布 -> 打印与PDF验收)
160
- knowme forge --profile-json candidate.json --role "AI Agent Engineer" --template modern --quiet
169
+ # 1. 使用已有的用户事实文件生成简历
170
+ knowme forge --profile-json candidate.json --role "AI Agent Engineer"
161
171
 
162
- # 2. 智能检索最匹配的 HTML 简历模板(混合评分引擎)
163
- knowme search --role "AI Agent Engineer" --engine hybrid
172
+ # 2. 更新当前文件对:通过 stdin 提交完整修改后 HTML
173
+ knowme forge --html-input -
164
174
 
165
- # 3. 从不完整资料生成草稿,不声明 PDF 已验收
175
+ # 3. 明确请求的草稿,不生成 PDF
166
176
  knowme forge --profile-json draft.json --draft
167
177
 
168
- # 4. 运行布局结构、Design Tokens 与 ATS 双重质检
169
- knowme validate /path/to/current-run/resume.html --json
170
-
171
- # 5. 确定性导出无损矢量 A4 PDF
172
- knowme render --input workspace/resume.html --output output/resume.pdf
178
+ # 4. 按需检索模板
179
+ knowme search --role "AI Agent Engineer" --engine hybrid --summary
173
180
 
174
- # 6. 编译生成可视化模板画廊
181
+ # 5. 开发画廊,使用虚构资料
175
182
  knowme gallery
176
183
  ```
184
+ 默认制作和更新统一使用 forge。stdin 通过宿主工具传入,不将候选人文本拼入 shell 代码;上面的文件是已有输入,不要求额外建档。独立的 `knowme validate` / `knowme render` 仅用于诊断,不发布已验收的 HTML/PDF 文件对。`knowme extract`、`npm run extract` 和旧 Python 入口均拒绝仓库提取,不读取仓库或写入资料。
185
+
177
186
  ---
178
187
 
179
188
  ## 自动化测试与持续集成
@@ -204,3 +213,5 @@ npm publish --access public
204
213
  ## 11. 开源协议
205
214
 
206
215
  本项目采用 **MIT 开源协议**,详情请参阅 [LICENSE](LICENSE) 文件。
216
+
217
+ 项目开发:[开发规范](AGENT.md) · [文档审查与下一阶段规划](docs/dev/dev-roadmap.md)。
package/SKILL.md CHANGED
@@ -1,49 +1,64 @@
1
1
  ---
2
2
  name: knowme-careerforge
3
- description: Create or refine a tailored resume from user descriptions, existing resume material and an optional target JD. Use when the user wants to draft a resume, tailor it to a role, edit an existing resume canvas, or export a verified resume PDF.
3
+ description: Draft, expand or refine high-quality resume content from user descriptions, existing resume material and an optional target JD. Use when the user wants to draft a resume, tailor it to a role, edit an existing resume canvas, or export a verified resume PDF.
4
4
  license: MIT
5
- compatibility: Requires Python 3.9+, Node.js 22.13+, the npm dependencies declared by this project, and Chromium for print/PDF checks. Explicit local font presets require the named font.
5
+ compatibility: Content drafting needs only the host Agent. PDF export requires Python 3.9+, Node.js 22.13+, the npm dependencies declared by this project, and Chromium for print/PDF checks. Explicit local font presets require the named font.
6
6
  metadata:
7
- version: 0.0.6
7
+ version: 0.0.8
8
8
  ---
9
9
 
10
10
  # KnowMe CareerForge
11
11
 
12
- Use the user's descriptions, existing resume and supplied supporting material. The host Agent understands, selects and rewrites content. Repository mining and automatic repo-to-resume backfill are not supported input paths. Do not scan the current project to infer candidate facts.
12
+ Create a readable resume from the user's descriptions, existing resume and explicitly supplied material. The host Agent discovers relevant strengths, expands terse experience into concrete professional writing, and selects evidence for the target role. Role and writing templates guide its reasoning; tools only bind templates and check printing. Content-only drafting and editing are complete deliverables when requested; they do not require JSON, a runtime check or PDF generation. Repository mining and automatic repo-to-resume backfill are not supported. Development tasks use AGENT.md; making a resume does not require reading development docs or tool source code.
13
13
 
14
- Reuse information already given and ask only useful follow-up questions. A target role is enough; a JD is optional. Make progress with sparse information when the user wants a draft. Do not impose a complete questionnaire or invent facts to fill empty fields. Preserve explicit user choices of language, template, page count and requested edit.
14
+ ## 1. Start from the conversation
15
15
 
16
- Keep employers, dates, degrees, responsibilities, metrics and ownership faithful to the input. User statements are supplied facts; do not downgrade “led” to “participated” merely because the source is chat. Do not claim independent verification without doing it. Keep gaps and uncertainties outside the resume rather than writing invented placeholder achievements.
16
+ Reuse information already given. A target role is sufficient to start the conversation, not to invent a candidate. A JD is optional. Decide whether candidate material exists before reading references, inspecting templates or checking runtime. With no material, a sufficient first response is: “请发已有简历,或告诉我姓名、最近一段工作经历(公司、时间、做了什么、用过哪些技术);已有的信息不用重复。”
17
17
 
18
- For help developing or reviewing this Skill repository, use its development documentation; do not start a candidate intake or resume-generation workflow merely because the repository contains resume tools.
18
+ - **Only a role, no candidate material:** ask for an existing resume or a short description of recent work, dates and technologies. Then wait. Do not build sample resumes, inspect every reference, or create test profiles while awaiting an answer. If a host task list is used, mark intake as awaiting input using the host’s supported state; drafting and rendering depend on it and remain pending. A TODO reminder does not unlock them. Do not create a task list just to run this simple workflow.
19
+ - **Usable facts supplied:** organize them directly. Missing optional contact, school or date fields do not require a Draft detour. Ask only consequential follow-ups; proceed with known facts when the user wants a result. A missing name does not block content writing. For PDF delivery, ask just for the required name, or prepare an unnamed Draft if requested.
20
+ - **Draft requested or delivery input insufficient:** use `--draft` for an explicitly requested partial canvas. Label it DRAFT; do not promise a verified PDF.
21
+ - **Existing canvas edited:** stage those edits in memory and validate/render them to the current delivery paths; create a separate revision only when requested. Do not rebuild from an older profile.
19
22
 
20
- ## Preserve the artifact lifecycle
23
+ Preserve employers, dates, qualifications, metrics and ownership exactly in meaning. “Participated” cannot become “led”; a target Java role does not prove Java experience. Role knowledge and JD keywords are prompts for questions, never evidence of skills. Do not add common tools, proficiency, implementation mechanisms, projects or outcomes merely because they sound plausible. Gallery `sample-profile.json` is fictional and never candidate input. If a user explicitly requests a fictional example, label it separately and keep it out of their fact record.
21
24
 
22
- Read [the shared artifact and error contract](references/07-artifact-contract.md) before running the pipeline. Draft, Master and Variant describe different artifacts. They do not mean the same thing as PASS, FAIL or UNVERIFIED.
25
+ ## 2. Develop the content, then choose its presentation
23
26
 
24
- - Prepare a Draft when information is incomplete. Unknown optional values are omitted or null, never sample candidate text.
25
- - Keep the user's facts in a Master; derive a Variant for a target role without overwriting the original facts. User-provided plain profile JSON remains supported. Users do not need to author JSON themselves.
26
- - Use an isolated run directory for each pipeline invocation. Read the returned manifest and exact output paths; never infer success from an existing workspace/resume.pdf.
27
- - When editing an existing canvas, preserve those edits and validate/render that canvas. Do not regenerate from an older profile and overwrite later content edits. Write a new output path for a new revision.
27
+ Before drafting or materially expanding content, read [source-grounded expansion](references/01-evidence-mining.md). Turn raw descriptions into useful resume evidence, not merely shorter paraphrases. Expand the supplied action, object, context and technical relationship; make supported abilities visible. A role template supplies writing angles and questions, not a candidate history. Keep unsupported suggestions out of the final resume.
28
28
 
29
- Resolve scripts and resources relative to this SKILL.md, regardless of current directory. Write candidate artifacts in the user's workspace. Tools require Python 3.9+, Node.js 22.13+ and installed npm runtime dependencies. Printing requires system Chromium or Playwright Chromium. Missing runtime means UNVERIFIED, not PASS.
29
+ Route only to the guidance needed:
30
30
 
31
- ```bash
32
- # Assemble and verify Agent-prepared user facts in an isolated run directory.
33
- python3 <skill-root>/scripts/pipeline/forge.py --profile-json <master.json> --role "<target role>" --template minimal --quiet
31
+ - **Terse experience or a request to expand:** use the expansion patterns and examples in reference 01. Ask the highest-value missing question when it would change the core claim; otherwise produce a useful version immediately.
32
+ - **Positioning, career transition or ability-focused writing:** read [career positioning](references/02-career-goal.md) and, when useful, the one relevant `src/knowledge/roles/*.json`. Infer transferable abilities from actual actions without inventing proficiency or tools.
33
+ - **A supplied JD or role-tailoring request:** read [JD alignment](references/03-jd-analysis.md). Map requirements to direct evidence, transferable evidence and gaps; select and order content accordingly. The JD parser is optional and does not perform this reasoning.
34
+ - **Contact-only or other narrow edits:** change the requested fields; do not restart positioning or expand unrelated content.
34
35
 
35
- # Incomplete input: return a draft, without a verified PDF claim.
36
- python3 <skill-root>/scripts/pipeline/forge.py --profile-json <draft.json> --draft --quiet
36
+ Keep a lightweight content plan in context: target role, strongest supported abilities, supporting experiences, and consequential gaps. This is reasoning support, not a required report, questionnaire or approval step. Follow the user's preference for immediate drafting versus deeper exploration.
37
37
 
38
- # Validate an existing edited canvas; export rechecks the final PDF.
39
- python3 <skill-root>/scripts/validation/validate-resume.py <resume.html> --expected-pages 1 --json
40
- python3 <skill-root>/scripts/rendering/render-pdf.py <resume.html> <new-resume.pdf> --expected-pages 1 --quiet
41
- ```
38
+ Choose content by relevance, specificity, personal contribution and distinctiveness. Expand strong but terse evidence; compress repetitive or low-relevance material. Preserve meaningful career context and chronology. Selecting facts for a tailored resume is permitted; changing their meaning or deleting important content just to pass layout checks is not. Explain a material omission briefly when needed. A summary should synthesize supported strengths, work entries should demonstrate them, and projects should add distinct evidence rather than duplicate work.
42
39
 
43
- ## Assemble and inspect
40
+ Review content before formatting: can a reader identify the target, the candidate's contribution and the strongest supporting evidence? Use the editorial review in reference 01 to remove empty expansion, unsupported causal claims and repeated achievements; do not force sparse inputs into a full resume structure. Replace generic praise with concrete supplied actions; preserve outcomes without numbers when that is all the source supports. Compare claims with the original user material, not just the generated profile. If a request is content-only, return the polished text and any consequential open question here. Do not force a PDF workflow.
44
41
 
45
- Use `canvas.html` as the sole maintained template structure. Gallery previews bind explicit `sample-profile.json` through the same instantiator; never use gallery samples as candidate facts. All education, work and project entries are independent. Treat an injection error as failure; never deliver the untouched sample template. For template choice and token tuning, read [template guidance](references/04-template-selection.md) and [canvas guidance](references/05-html-canvas-tokens.md).
42
+ For HTML/PDF delivery, prepare the selected, rewritten profile in memory and read [the artifact contract](references/07-artifact-contract.md). The pipeline's Master is the supplied run snapshot, not a complete lifetime fact bank; Variant does not automatically tailor the prose. Keep original user material as the factual reference in context. Do not create permanent profiles or analysis files unless requested.
46
43
 
47
- Check facts against the input, inspect print layout and run [QA and rendering](references/06-qa-and-rendering.md). Automatic tuning may reduce spacing and font sizes within limits, but cannot replace content review. When fitting fails, adjust expression, select another layout or use the user's allowed page count. Do not silently delete facts. If PDF extraction reports font mapping differences, inspect missingCodepoints and extractedRadicals; an explicit available font preset such as `--font-preset arial-unicode` can be used in a new run. Never relax text checks or rewrite candidate facts to bypass a font failure.
44
+ Read [template guidance](references/04-template-selection.md) when choosing a layout. Content priorities come first: choose for actual length, section hierarchy and user preference. Honor an explicit template choice. The default template order is not a mandatory editorial order; adapt the canvas when a substantive request needs a different hierarchy, then validate it. For content that warrants two pages, explicitly compose two page containers and use `--expected-pages 2`; this flag alone does not paginate a template. State the actual `templateUsed` in PDF delivery.
48
45
 
49
- Report the actual result concisely with the produced file paths. PASS requires the current PDF's page, text and layout checks. FAIL or UNVERIFIED must explain the concrete error; DRAFT must be labeled as a draft. Basic PDF text checks are not universal ATS certification.
46
+ ## 3. Generate only when a file deliverable is needed
47
+
48
+ For HTML/PDF requests, read [production commands and QA](references/06-qa-and-rendering.md) before the first build or canvas update. It contains runtime preparation, stdin commands, safe update handling and diagnostics. Use the host-resolved skill root and the user's output workspace. Default production leaves only the current HTML/PDF pair; archives are opt-in. Never overwrite the current canvas before validation or treat an old PDF as this run's result.
49
+
50
+ For content-only requests, deliver copy-ready prose in the requested language and scope. A single bullet edit needs only that bullet; a complete resume needs coherent sections. Keep suggestions or unresolved questions outside the resume body. Do not append a mandatory questionnaire, editing report, capability score or disclaimer to otherwise usable content.
51
+
52
+ ## 4. Inspect and deliver
53
+
54
+ Check rewritten content against the user's input before rendering. After tool acceptance, inspect the final PDF visually on every page: hierarchy, small type, excessive whitespace, dense skills, duplication and education/date alignment. Keep any inspection images and helper scripts in a system temporary directory; remove only these self-created temporary files after inspection, including failed inspection attempts. Do not save them beside the resume unless requested. An HTML screenshot or PDF file size does not prove final PDF appearance. If visual tools are unavailable, disclose that limitation. After an accepted result and the completed visual/content review, stop. Do not perform another identical export, measure file size as extra QA, or create another named copy. Read [canvas tuning](references/05-html-canvas-tokens.md) only for layout edits and [QA diagnostics](references/06-qa-and-rendering.md) for failures.
55
+
56
+ PASS requires this PDF's page, text and layout checks. It does not certify truth, persuasive design or universal ATS compatibility. Do not shrink sparse resumes, fabricate content to fill the page, silently remove facts, or relax checks to pass. Use returned failure diagnostics; retain full run files only through explicit diagnostic mode. Do not delete user-owned files or old archives as cosmetic cleanup. Font extraction failures require inspecting diagnostics and an available font choice, not altering candidate text.
57
+
58
+ Default HTML/PDF delivery: link PDF and editable HTML, name the template, and briefly note useful remaining gaps. Do not repeat the entire resume, dump QA tables, or link input/Master/Variant/manifest unless requested or needed to explain failure. FAIL/UNVERIFIED must identify the concrete blocker; DRAFT must remain clearly labeled.
59
+
60
+ For an HTML/PDF request, use one concise delivery shape across hosts, adapting only language and filenames:
61
+
62
+ > 已生成简历: [PDF](<current PDF path>) · [可编辑 HTML](<current HTML path>)。模板:<templateUsed>。<One useful gap or actual inspection limitation, if any.>
63
+
64
+ Return one current version by default, not several template alternatives or separate analysis reports. For an update, patch only the requested fields in the current working profile/canvas, retain the selected template and public filenames unless the user asks to change them, and publish the newly accepted revision; leave existing archives untouched and let the pipeline clean its temporary staging. When blocked, give the blocker and the single next action instead of a success-shaped delivery. Keep progress updates about observable work, not a running commentary of every file read or schema decision.
@@ -1,3 +1,3 @@
1
1
  # KnowMe CareerForge
2
2
 
3
- Read the installed SKILL.md and references/07-artifact-contract.md. Use user-supplied facts, preserve Draft/Master/Variant separation and write each pipeline run into its own directory. Repository mining is not supported. Only the current PASS manifest identifies verified PDF delivery; never substitute an old workspace file after failure.
3
+ Read SKILL.md at the installed skill root and follow it as the single runtime workflow. Resolve its scripts and references from that directory, not the candidate workspace. Load supporting references only when the current step needs them. Do not load AGENT.md or architecture documents to make a resume.
@@ -1,22 +1,6 @@
1
1
  name: knowme-careerforge
2
2
  description: An agent-native skill for self-discovery, career positioning, and tailored resume engineering.
3
- version: 0.0.6
3
+ version: 0.0.8
4
4
  entrypoint: SKILL.md
5
- tools:
6
- - name: forge
7
- command: python3 scripts/pipeline/forge.py
8
- - name: search-template
9
- command: python3 scripts/template/search-template.py
10
- - name: analyze-jd
11
- command: python3 scripts/evidence/analyze-jd.py
12
- - name: instantiate-resume
13
- command: python3 scripts/template/instantiate-resume.py
14
- - name: validate-resume
15
- command: python3 scripts/validation/validate-resume.py
16
- - name: render-pdf
17
- command: python3 scripts/rendering/render-pdf.py
18
5
  rules:
19
- - "Execute tools silently in background with --quiet (DO NOT print raw HTML, full CSS, or scripts in chat)."
20
- - "Use the current isolated run canvas and preserve Master/Variant lineage."
21
- - "Deliver only the current PASS manifest outputs; report DRAFT, FAIL and UNVERIFIED accurately."
22
- - "Reference AGENT.md, ARCHITECTURE.md, and references/01~06 for complete specifications."
6
+ - "Read SKILL.md at the installed skill root and follow it as the single runtime workflow. Resolve its scripts and references from that directory, not the candidate workspace. Load supporting references only when the current step needs them. Do not load AGENT.md or architecture documents to make a resume."
@@ -5,4 +5,4 @@ alwaysApply: false
5
5
 
6
6
  # KnowMe CareerForge
7
7
 
8
- Read the installed SKILL.md and references/07-artifact-contract.md. Use user-supplied facts, preserve Draft/Master/Variant separation and write each pipeline run into its own directory. Repository mining is not supported. Only the current PASS manifest identifies verified PDF delivery; never substitute an old workspace file after failure.
8
+ Read SKILL.md at the installed skill root and follow it as the single runtime workflow. Resolve its scripts and references from that directory, not the candidate workspace. Load supporting references only when the current step needs them. Do not load AGENT.md or architecture documents to make a resume.