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.
- package/AGENT.md +7 -6
- package/ARCHITECTURE.md +21 -14
- package/README.md +36 -25
- package/README.zh-CN.md +36 -25
- package/SKILL.md +42 -27
- package/agents/claude/knowme-careerforge.md +1 -1
- package/agents/codex/knowme-careerforge.yaml +2 -18
- package/agents/cursor/knowme-careerforge.mdc +1 -1
- package/agents/gemini/knowme-careerforge.json +1 -1
- package/agents/opencode/skill.yaml +1 -1
- package/agents/windsurf/knowme-careerforge.rules +1 -1
- package/dist/cli/src/commands/init.js +51 -32
- package/dist/cli/src/index.js +22 -14
- package/package.json +1 -1
- package/references/01-evidence-mining.md +110 -3
- package/references/02-career-goal.md +36 -14
- package/references/03-jd-analysis.md +13 -15
- package/references/04-template-selection.md +27 -35
- package/references/05-html-canvas-tokens.md +4 -2
- package/references/06-qa-and-rendering.md +50 -3
- package/references/07-artifact-contract.md +39 -6
- package/scripts/Agent.md +3 -3
- package/scripts/build/build-gallery.py +2 -1
- package/scripts/build/release.py +3 -2
- package/scripts/evidence/analyze-jd.py +49 -8
- package/scripts/evidence/extract-evidence.py +17 -391
- package/scripts/pipeline/forge.py +165 -81
- package/scripts/rendering/browser-engine.js +47 -1
- package/scripts/template/instantiate-resume.py +5 -3
- package/scripts/template/search-template.py +9 -0
- package/skill.json +7 -6
- package/src/knowledge/career/seniority-signals.json +1 -0
- package/src/knowledge/index.json +176 -2
- package/src/knowledge/resume/action-verbs.json +3 -2
- package/src/knowledge/resume/fab-model.json +5 -4
- package/src/knowledge/resume-schema.json +1 -1
- package/src/knowledge/templates.json +174 -0
- package/src/references/01-evidence-mining.md +110 -3
- package/src/references/02-career-goal.md +36 -14
- package/src/references/03-jd-analysis.md +13 -15
- package/src/references/04-template-selection.md +27 -35
- package/src/references/05-html-canvas-tokens.md +4 -2
- package/src/references/06-qa-and-rendering.md +50 -3
- package/src/references/07-artifact-contract.md +39 -6
- package/src/templates/academic-research/canvas.html +2 -1
- package/src/templates/classic/canvas.html +2 -1
- package/src/templates/classic/style.css +90 -28
- package/src/templates/common/base.css +19 -3
- package/src/templates/common/canvas-bindings.css +248 -13
- package/src/templates/compact-dense/style.css +5 -1
- package/src/templates/creative-tech/style.css +30 -1
- package/src/templates/data-analyst/style.css +31 -1
- package/src/templates/editorial/README.md +7 -0
- package/src/templates/editorial/canvas.html +22 -0
- package/src/templates/editorial/metadata.json +36 -0
- package/src/templates/editorial/sample-profile.json +86 -0
- package/src/templates/editorial/style.css +24 -0
- package/src/templates/executive/style.css +52 -18
- package/src/templates/graduate/README.md +7 -0
- package/src/templates/graduate/canvas.html +22 -0
- package/src/templates/graduate/metadata.json +38 -0
- package/src/templates/graduate/sample-profile.json +60 -0
- package/src/templates/graduate/style.css +24 -0
- package/src/templates/international-flow/canvas.html +2 -1
- package/src/templates/minimal/README.md +3 -1
- package/src/templates/minimal/canvas.html +3 -2
- package/src/templates/minimal/style.css +6 -0
- package/src/templates/modern/style.css +43 -55
- package/src/templates/project-focus/README.md +7 -0
- package/src/templates/project-focus/canvas.html +22 -0
- package/src/templates/project-focus/metadata.json +36 -0
- package/src/templates/project-focus/sample-profile.json +93 -0
- package/src/templates/project-focus/style.css +24 -0
- package/src/templates/startup-generalist/canvas.html +2 -1
- 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/
|
|
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
|
-
|
|
74
|
+
本文约束开发;`SKILL.md` 定义按需加载的产品能力,两者有不同生命周期。开发仓库可以包含架构、测试、发布工具;安装包必须独立满足入口、资源与运行依赖,不能依赖源码工作区恰好存在。
|
|
76
75
|
|
|
77
|
-
详细的标准对照、当前分发缺口和验收方案见 [Agent Skills 设计评审](docs/dev/
|
|
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
|
|
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
|
-
-
|
|
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,
|
|
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 (
|
|
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 (
|
|
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
|
|
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
|
|
90
|
+
Agent->>Engine: forge.py --profile-json - (facts on stdin)
|
|
91
91
|
Engine->>Engine: Create unique run, snapshot input, validate profile
|
|
92
|
-
Engine->>Engine:
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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/
|
|
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
|
|
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,
|
|
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
|
|
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
|
-
###
|
|
100
|
+
### Platform entrypoints and runtime resources
|
|
101
101
|
|
|
102
|
-
| Platform |
|
|
103
|
-
|
|
|
104
|
-
|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
|
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
158
|
-
knowme forge --profile-json candidate.json --role "AI Agent Engineer"
|
|
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.
|
|
161
|
-
knowme
|
|
170
|
+
# 2. Update the current pair: supply complete edited HTML on stdin
|
|
171
|
+
knowme forge --html-input -
|
|
162
172
|
|
|
163
|
-
# 3.
|
|
173
|
+
# 3. Explicitly requested draft; no PDF
|
|
164
174
|
knowme forge --profile-json draft.json --draft
|
|
165
175
|
|
|
166
|
-
# 4.
|
|
167
|
-
knowme
|
|
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
|
-
#
|
|
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
|
|
50
|
-
- **CareerForge(职业定位与简历工程引擎)**:将候选人的真实优势精准对齐目标岗位(JD),以 **HTML 中间工作区(Intermediate Canvas)** 与 **Design Tokens(设计系统变量)** 为工作场进行微调排版,最终通过 Playwright
|
|
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
|
-
###
|
|
102
|
+
### 平台入口与运行资源
|
|
103
103
|
|
|
104
|
-
| 平台 |
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
160
|
-
knowme forge --profile-json candidate.json --role "AI Agent Engineer"
|
|
169
|
+
# 1. 使用已有的用户事实文件生成简历
|
|
170
|
+
knowme forge --profile-json candidate.json --role "AI Agent Engineer"
|
|
161
171
|
|
|
162
|
-
# 2.
|
|
163
|
-
knowme
|
|
172
|
+
# 2. 更新当前文件对:通过 stdin 提交完整修改后 HTML
|
|
173
|
+
knowme forge --html-input -
|
|
164
174
|
|
|
165
|
-
# 3.
|
|
175
|
+
# 3. 明确请求的草稿,不生成 PDF
|
|
166
176
|
knowme forge --profile-json draft.json --draft
|
|
167
177
|
|
|
168
|
-
# 4.
|
|
169
|
-
knowme
|
|
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
|
-
#
|
|
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:
|
|
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:
|
|
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.
|
|
7
|
+
version: 0.0.8
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# KnowMe CareerForge
|
|
11
11
|
|
|
12
|
-
|
|
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
|
-
|
|
14
|
+
## 1. Start from the conversation
|
|
15
15
|
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
25
|
+
## 2. Develop the content, then choose its presentation
|
|
23
26
|
|
|
24
|
-
-
|
|
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
|
-
|
|
29
|
+
Route only to the guidance needed:
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
-
- "
|
|
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
|
|
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.
|