knowme-careerforge-skill 0.0.2 → 0.0.6
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 +276 -0
- package/ARCHITECTURE.md +216 -0
- package/README.md +34 -54
- package/README.zh-CN.md +35 -57
- package/SKILL.md +28 -137
- package/agents/claude/knowme-careerforge.md +2 -16
- package/agents/codex/knowme-careerforge.yaml +5 -7
- package/agents/cursor/knowme-careerforge.mdc +4 -9
- package/agents/opencode/skill.yaml +1 -1
- package/agents/windsurf/knowme-careerforge.rules +2 -12
- package/dist/cli/src/commands/init.js +9 -0
- package/dist/cli/src/index.js +40 -19
- package/dist/scripts/rendering/engine-loader.d.ts +2 -0
- package/dist/scripts/rendering/engine-loader.js +46 -0
- package/dist/scripts/rendering/render-pdf.d.ts +3 -8
- package/dist/scripts/rendering/render-pdf.js +7 -103
- package/dist/scripts/rendering/runtime.d.ts +9 -0
- package/dist/scripts/rendering/runtime.js +63 -0
- package/dist/scripts/validation/validate-ats.d.ts +2 -22
- package/dist/scripts/validation/validate-ats.js +6 -168
- package/dist/scripts/validation/validate-layout.d.ts +2 -23
- package/dist/scripts/validation/validate-layout.js +5 -159
- package/package.json +16 -4
- package/references/01-evidence-mining.md +5 -0
- package/references/02-career-goal.md +38 -0
- package/references/03-jd-analysis.md +44 -0
- package/references/04-template-selection.md +43 -0
- package/references/05-html-canvas-tokens.md +12 -0
- package/references/06-qa-and-rendering.md +14 -0
- package/references/07-artifact-contract.md +64 -0
- package/scripts/Agent.md +9 -136
- package/scripts/build/build-gallery.py +66 -56
- package/scripts/build/run-all-tests.py +1 -0
- package/scripts/build/sync-version.py +37 -10
- package/scripts/contracts/profile.py +101 -0
- package/scripts/evidence/extract-evidence.py +109 -62
- package/scripts/pipeline/forge.py +266 -136
- package/scripts/rendering/README.md +65 -0
- package/scripts/rendering/browser-engine.d.ts +15 -0
- package/scripts/rendering/browser-engine.js +366 -0
- package/scripts/rendering/browser_engine.py +39 -0
- package/scripts/rendering/engine-loader.ts +11 -0
- package/scripts/rendering/render-pdf.py +26 -151
- package/scripts/rendering/render-pdf.ts +7 -83
- package/scripts/template/instantiate-resume.py +266 -167
- package/scripts/template/search-template.py +367 -89
- package/scripts/validation/measure-dom.js +5 -0
- package/scripts/validation/validate-ats.ts +6 -174
- package/scripts/validation/validate-layout.ts +5 -159
- package/scripts/validation/validate-resume.py +23 -134
- package/skill.json +1 -1
- package/src/knowledge/index.json +390 -10
- package/src/knowledge/resume-schema.json +377 -71
- package/src/knowledge/templates.json +388 -8
- package/src/references/01-evidence-mining.md +5 -0
- package/src/references/02-career-goal.md +38 -0
- package/src/references/03-jd-analysis.md +44 -0
- package/src/references/04-template-selection.md +43 -0
- package/src/references/05-html-canvas-tokens.md +12 -0
- package/src/references/06-qa-and-rendering.md +14 -0
- package/src/references/07-artifact-contract.md +64 -0
- package/src/templates/Agent.md +11 -0
- package/src/templates/academic-research/README.md +25 -0
- package/src/templates/academic-research/canvas.html +21 -0
- package/src/templates/academic-research/metadata.json +38 -0
- package/src/templates/academic-research/sample-profile.json +86 -0
- package/src/templates/academic-research/style.css +213 -0
- package/src/templates/classic/README.md +9 -0
- package/src/templates/classic/canvas.html +21 -0
- package/src/templates/classic/metadata.json +3 -0
- package/src/templates/classic/sample-profile.json +86 -0
- package/src/templates/classic/style.css +35 -54
- package/src/templates/common/base.css +182 -0
- package/src/templates/common/canvas-bindings.css +41 -0
- package/src/templates/common/resume-contract.md +8 -0
- package/src/templates/compact-dense/README.md +25 -0
- package/src/templates/compact-dense/canvas.html +14 -0
- package/src/templates/compact-dense/metadata.json +38 -0
- package/src/templates/compact-dense/sample-profile.json +86 -0
- package/src/templates/compact-dense/style.css +218 -0
- package/src/templates/creative-tech/README.md +26 -0
- package/src/templates/creative-tech/canvas.html +15 -0
- package/src/templates/creative-tech/metadata.json +39 -0
- package/src/templates/creative-tech/sample-profile.json +86 -0
- package/src/templates/creative-tech/style.css +257 -0
- package/src/templates/data-analyst/README.md +26 -0
- package/src/templates/data-analyst/canvas.html +15 -0
- package/src/templates/data-analyst/metadata.json +39 -0
- package/src/templates/data-analyst/sample-profile.json +86 -0
- package/src/templates/data-analyst/style.css +285 -0
- package/src/templates/executive/README.md +9 -0
- package/src/templates/executive/canvas.html +15 -0
- package/src/templates/executive/sample-profile.json +86 -0
- package/src/templates/executive/style.css +83 -74
- package/src/templates/international-flow/README.md +26 -0
- package/src/templates/international-flow/canvas.html +21 -0
- package/src/templates/international-flow/metadata.json +37 -0
- package/src/templates/international-flow/sample-profile.json +86 -0
- package/src/templates/international-flow/style.css +208 -0
- package/src/templates/minimal/README.md +9 -0
- package/src/templates/minimal/canvas.html +21 -0
- package/src/templates/minimal/sample-profile.json +86 -0
- package/src/templates/minimal/style.css +54 -72
- package/src/templates/modern/README.md +9 -0
- package/src/templates/modern/canvas.html +15 -0
- package/src/templates/modern/sample-profile.json +86 -0
- package/src/templates/modern/style.css +78 -71
- package/src/templates/startup-generalist/README.md +25 -0
- package/src/templates/startup-generalist/canvas.html +21 -0
- package/src/templates/startup-generalist/metadata.json +37 -0
- package/src/templates/startup-generalist/sample-profile.json +86 -0
- package/src/templates/startup-generalist/style.css +237 -0
- package/src/references/ats.md +0 -17
- package/src/references/evidence-first.md +0 -22
- package/src/references/pdf.md +0 -40
- package/src/references/resume-writing.md +0 -25
- package/src/references/template-design.md +0 -57
- package/src/templates/classic/template.html +0 -133
- package/src/templates/executive/template.html +0 -101
- package/src/templates/minimal/template.html +0 -114
- package/src/templates/modern/template.html +0 -139
- package/src/workflows/analyze-job.md +0 -16
- package/src/workflows/define-goal.md +0 -16
- package/src/workflows/forge-resume.md +0 -25
- package/src/workflows/know-me.md +0 -21
- package/src/workflows/position.md +0 -19
- package/src/workflows/review.md +0 -31
package/README.md
CHANGED
|
@@ -1,28 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# 🎯 KnowMe CareerForge
|
|
2
4
|
|
|
3
5
|
<p align="center">
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
+
<strong>认识自己,明确方向,锻造属于你的职业机会。</strong><br>
|
|
7
|
+
<em>Know Yourself. Define Your Direction. Forge Your Opportunity.</em>
|
|
6
8
|
</p>
|
|
7
9
|
|
|
8
10
|
<p align="center">
|
|
9
|
-
<a href="
|
|
10
|
-
<img src="https://img.shields.io/badge/
|
|
11
|
-
<img src="https://img.shields.io/badge/templates-4_baseline_A4-purple?style=for-the-badge" alt="4 Baseline A4 Templates">
|
|
12
|
-
<img src="https://img.shields.io/badge/python-3.9+-yellow?style=for-the-badge&logo=python&logoColor=white" alt="Python 3.9+">
|
|
13
|
-
<a href="LICENSE"><img src="https://img.shields.io/github/license/Max-Samson/knowme-careerforge-skill?style=for-the-badge&color=green" alt="License: MIT"></a>
|
|
11
|
+
<a href="README.zh-CN.md"><img src="https://img.shields.io/badge/语言-🇨🇳_简体中文-0284C7?style=flat" alt="简体中文"></a>
|
|
12
|
+
<a href="README.md"><img src="https://img.shields.io/badge/Language-🇺🇸_English-4F46E5?style=flat" alt="English"></a>
|
|
14
13
|
</p>
|
|
15
14
|
|
|
16
15
|
<p align="center">
|
|
17
|
-
<a href="https://www.npmjs.com/package/knowme-careerforge-skill"><img src="https://img.shields.io/npm/v/knowme-careerforge-skill?style=flat
|
|
18
|
-
<
|
|
19
|
-
<img src="https://img.shields.io/badge/
|
|
16
|
+
<a href="https://www.npmjs.com/package/knowme-careerforge-skill"><img src="https://img.shields.io/npm/v/knowme-careerforge-skill?style=flat&logo=npm&logoColor=white&color=CB3837" alt="npm version"></a>
|
|
17
|
+
<img src="https://img.shields.io/badge/Node.js-%3E%3D22.13-339933?style=flat&logo=nodedotjs&logoColor=white" alt="Node.js">
|
|
18
|
+
<img src="https://img.shields.io/badge/TypeScript-5.x-3178C6?style=flat&logo=typescript&logoColor=white" alt="TypeScript">
|
|
19
|
+
<img src="https://img.shields.io/badge/Python-3.9+-3776AB?style=flat&logo=python&logoColor=white" alt="Python">
|
|
20
|
+
<img src="https://img.shields.io/badge/Playwright-A4_PDF-2EAD33?style=flat&logo=playwright&logoColor=white" alt="Playwright">
|
|
21
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-6B7280?style=flat" alt="MIT License"></a>
|
|
20
22
|
</p>
|
|
21
23
|
|
|
22
|
-
>
|
|
23
|
-
>
|
|
24
|
-
> *An agent-native skill for self-discovery, career positioning, and tailored resume engineering.*
|
|
25
|
-
|
|
24
|
+
</div>
|
|
26
25
|
---
|
|
27
26
|
|
|
28
27
|
## 1. What is KnowMe CareerForge?
|
|
@@ -110,44 +109,25 @@ knowme list
|
|
|
110
109
|
|
|
111
110
|
---
|
|
112
111
|
|
|
113
|
-
## 4.
|
|
112
|
+
## 4. User input and artifact lifecycle
|
|
114
113
|
|
|
115
|
-
|
|
116
|
-
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
117
|
-
│ Mode A: Target-Role Mode │
|
|
118
|
-
│ User specifies a career direction (e.g., "Senior AI Agent Engineer"). │
|
|
119
|
-
│ ▶ Agent loads role skill tree, extracts matching evidence, builds variant. │
|
|
120
|
-
├─────────────────────────────────────────────────────────────────────────────┤
|
|
121
|
-
│ Mode B: JD-Specific Mode │
|
|
122
|
-
│ User pastes a concrete Job Description (JD). │
|
|
123
|
-
│ ▶ Agent runs analyze-jd.py, performs gap analysis, highlights hiring keys. │
|
|
124
|
-
├─────────────────────────────────────────────────────────────────────────────┤
|
|
125
|
-
│ Mode C: Repo-to-Resume Mode │
|
|
126
|
-
│ User supplies a GitHub repository / codebase / project notes. │
|
|
127
|
-
│ ▶ Agent inspects code/config files, grades evidence into L1~L3, builds FAB. │
|
|
128
|
-
└─────────────────────────────────────────────────────────────────────────────┘
|
|
129
|
-
```
|
|
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.
|
|
130
115
|
|
|
131
|
-
|
|
116
|
+
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).
|
|
132
117
|
|
|
133
|
-
## 5.
|
|
118
|
+
## 5. Isolated runs and final acceptance
|
|
134
119
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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.
|
|
121
|
+
|
|
122
|
+
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.
|
|
138
123
|
|
|
139
|
-
|
|
140
|
-
2. **[Define & Understand] Signal Extraction**: The target JD is parsed to extract must-have competencies and hiring signals.
|
|
141
|
-
3. **[Position] Strategy Formulation**: Gap analysis maps real candidate evidence to target JD requirements.
|
|
142
|
-
4. **[CareerForge] Template Search & Assembly**: The best HTML template is chosen using multi-criteria BM25 ranking (`search-template.py`) and instantiated to `workspace/resume.html`.
|
|
143
|
-
5. **[Review & Dual QA] Self-Healing**: Layout box model height overflow and ATS textual readability tests run automatically. If an overflow is detected, CSS spacing tokens are auto-calibrated.
|
|
144
|
-
6. **[PDF Export] Deterministic Output**: Playwright renders pixel-perfect `workspace/resume.pdf` with `@media print` A4 rules.
|
|
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.
|
|
145
125
|
|
|
146
126
|
---
|
|
147
127
|
|
|
148
128
|
## 6. Token Self-Healing & Visual Tuning Cheat Sheet
|
|
149
129
|
|
|
150
|
-
All visual parameters are concentrated in `:root` variables inside `
|
|
130
|
+
All visual parameters are concentrated in `:root` variables inside the current run’s `resume.html`:
|
|
151
131
|
|
|
152
132
|
| CSS Token | Default | Compact (1-Page Squeeze) | Relaxed (2-Page Flow) | Purpose |
|
|
153
133
|
| :--- | :--- | :--- | :--- | :--- |
|
|
@@ -174,24 +154,24 @@ All visual parameters are concentrated in `:root` variables inside `workspace/re
|
|
|
174
154
|
## 8. CLI & Script Reference
|
|
175
155
|
|
|
176
156
|
```bash
|
|
177
|
-
# 1.
|
|
178
|
-
knowme
|
|
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
|
|
179
159
|
|
|
180
|
-
# 2.
|
|
181
|
-
|
|
160
|
+
# 2. Search best template for target role (hybrid engine)
|
|
161
|
+
knowme search --role "AI Agent Engineer" --engine hybrid
|
|
182
162
|
|
|
183
|
-
# 3.
|
|
184
|
-
|
|
163
|
+
# 3. Prepare an incomplete draft without PDF delivery
|
|
164
|
+
knowme forge --profile-json draft.json --draft
|
|
185
165
|
|
|
186
166
|
# 4. Validate working canvas layout & ATS compliance
|
|
187
|
-
knowme validate
|
|
167
|
+
knowme validate /path/to/current-run/resume.html --json
|
|
188
168
|
|
|
189
169
|
# 5. Render deterministic pixel-perfect PDF
|
|
190
|
-
|
|
170
|
+
knowme render --input workspace/resume.html --output output/resume.pdf
|
|
191
171
|
|
|
192
172
|
# 6. Build & view static HTML Template Gallery
|
|
193
173
|
knowme gallery
|
|
194
|
-
|
|
174
|
+
```
|
|
195
175
|
---
|
|
196
176
|
|
|
197
177
|
## Automated Test Suite
|
|
@@ -208,8 +188,8 @@ python3 scripts/build/run-all-tests.py
|
|
|
208
188
|
This package is ready to be built, tested, and published to the NPM Registry:
|
|
209
189
|
|
|
210
190
|
```bash
|
|
211
|
-
# 1. Automated release preparation & verification
|
|
212
|
-
npm run release --
|
|
191
|
+
# 1. Automated release preparation & verification (e.g. patch/minor/major)
|
|
192
|
+
npm run release -- <version>
|
|
213
193
|
|
|
214
194
|
# 2. Publish to public NPM registry
|
|
215
195
|
npm publish --access public
|
package/README.zh-CN.md
CHANGED
|
@@ -1,30 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# 🎯 KnowMe CareerForge
|
|
2
4
|
|
|
3
5
|
<p align="center">
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
+
<strong>认识自己,明确方向,锻造属于你的职业机会。</strong><br>
|
|
7
|
+
<em>Know Yourself. Define Your Direction. Forge Your Opportunity.</em>
|
|
6
8
|
</p>
|
|
7
9
|
|
|
8
10
|
<p align="center">
|
|
9
|
-
<a href="
|
|
10
|
-
<img src="https://img.shields.io/badge
|
|
11
|
-
<img src="https://img.shields.io/badge/A4模板-4套黄金基准-purple?style=for-the-badge" alt="4 Baseline A4 Templates">
|
|
12
|
-
<img src="https://img.shields.io/badge/python-3.9+-yellow?style=for-the-badge&logo=python&logoColor=white" alt="Python 3.9+">
|
|
13
|
-
<a href="LICENSE"><img src="https://img.shields.io/github/license/Max-Samson/knowme-careerforge-skill?style=for-the-badge&color=green" alt="License: MIT"></a>
|
|
11
|
+
<a href="README.zh-CN.md"><img src="https://img.shields.io/badge/语言-🇨🇳_简体中文-0284C7?style=flat" alt="简体中文"></a>
|
|
12
|
+
<a href="README.md"><img src="https://img.shields.io/badge/Language-🇺🇸_English-4F46E5?style=flat" alt="English"></a>
|
|
14
13
|
</p>
|
|
15
14
|
|
|
16
15
|
<p align="center">
|
|
17
|
-
<a href="https://www.npmjs.com/package/knowme-careerforge-skill"><img src="https://img.shields.io/npm/v/knowme-careerforge-skill?style=flat
|
|
18
|
-
<
|
|
19
|
-
<img src="https://img.shields.io/badge
|
|
16
|
+
<a href="https://www.npmjs.com/package/knowme-careerforge-skill"><img src="https://img.shields.io/npm/v/knowme-careerforge-skill?style=flat&logo=npm&logoColor=white&color=CB3837" alt="npm package"></a>
|
|
17
|
+
<img src="https://img.shields.io/badge/Node.js-%3E%3D22.13-339933?style=flat&logo=nodedotjs&logoColor=white" alt="Node.js">
|
|
18
|
+
<img src="https://img.shields.io/badge/TypeScript-5.x-3178C6?style=flat&logo=typescript&logoColor=white" alt="TypeScript">
|
|
19
|
+
<img src="https://img.shields.io/badge/Python-3.9+-3776AB?style=flat&logo=python&logoColor=white" alt="Python">
|
|
20
|
+
<img src="https://img.shields.io/badge/Playwright-A4_PDF-2EAD33?style=flat&logo=playwright&logoColor=white" alt="Playwright">
|
|
21
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/开源协议-MIT-6B7280?style=flat" alt="License: MIT"></a>
|
|
20
22
|
</p>
|
|
21
23
|
|
|
22
|
-
>
|
|
23
|
-
>
|
|
24
|
-
> *Know Yourself. Define Your Direction. Forge Your Opportunity.*
|
|
25
|
-
>
|
|
26
|
-
> *面向主流 AI Agent 的自我认知、职业定位与岗位定制简历工程 Skill。*
|
|
27
|
-
|
|
24
|
+
</div>
|
|
28
25
|
---
|
|
29
26
|
|
|
30
27
|
## 1. 什么是 KnowMe CareerForge?
|
|
@@ -114,44 +111,25 @@ knowme list
|
|
|
114
111
|
|
|
115
112
|
---
|
|
116
113
|
|
|
117
|
-
## 4.
|
|
114
|
+
## 4. 用户信息与资料生命周期
|
|
118
115
|
|
|
119
|
-
|
|
120
|
-
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
121
|
-
│ 模式 A:目标岗位模式 (Target-Role Mode) │
|
|
122
|
-
│ 用户指定职业发展方向(如“资深 AI Agent 研发工程师”)。 │
|
|
123
|
-
│ ▶ Agent 加载岗位能力树,从经历库中提取强匹配证据,派生对应 Resume Variant。 │
|
|
124
|
-
├─────────────────────────────────────────────────────────────────────────────┤
|
|
125
|
-
│ 模式 B:具体 JD 定制模式 (JD-Specific Mode) │
|
|
126
|
-
│ 用户粘贴具体的招聘需求 (Job Description)。 │
|
|
127
|
-
│ ▶ Agent 运行 analyze-jd.py 执行差距分析,提取加分项并高亮核心招聘信号。 │
|
|
128
|
-
├─────────────────────────────────────────────────────────────────────────────┤
|
|
129
|
-
│ 模式 C:代码库到经历挖掘模式 (Repo-to-Resume Mode) │
|
|
130
|
-
│ 用户提供 GitHub 仓库链接、代码目录或工程笔记。 │
|
|
131
|
-
│ ▶ Agent 审查源码与配置文件,判定 L1~L3 证据等级,重塑为高质量 FAB 论据。 │
|
|
132
|
-
└─────────────────────────────────────────────────────────────────────────────┘
|
|
133
|
-
```
|
|
116
|
+
当前功能依靠用户描述、已有简历和明确提供的支持材料,由宿主 Agent 组织与定制内容;不支持代码仓库分析回填。目标岗位即可开始,JD 可选。
|
|
134
117
|
|
|
135
|
-
|
|
118
|
+
Draft 保留不完整资料,Master 保存本次已知事实,Variant 记录来源 Master 的摘要并派生岗位表达。缺失值省略或 null,不补示例姓名、默认荣誉和任意指标。完整规则见 [资料与验收契约](references/07-artifact-contract.md)。
|
|
136
119
|
|
|
137
|
-
## 5.
|
|
120
|
+
## 5. 独立运行与最终验收
|
|
138
121
|
|
|
139
|
-
|
|
140
|
-
Know (证据分级) ──> Define (明确目标) ──> Understand (洞察JD) ──> Position (制定策略) ──> Forge (HTML修改场) ──> Review (双重QA)
|
|
141
|
-
```
|
|
122
|
+
每次 forge 在 `workspace/runs/<runId>/` 保存输入快照、Master、Variant、画布、QA 和运行清单。通过验收后才写入本次 PDF;失败的清单不会返回旧文件作为交付。可以用 `--output` 和 `--html-output` 指定已验收副本位置。
|
|
142
123
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
3.
|
|
146
|
-
4. **[CareerForge] 模板检索与组装**:通过多维打分引擎检索最佳模板,实例化生成 `workspace/resume.html`。
|
|
147
|
-
5. **[Review & Dual QA] 闭环自愈**:无头浏览器检测 DOM 高度溢出与 ATS 文本流,自愈调校 CSS 间距 Tokens。
|
|
148
|
-
6. **[PDF Export] 确定性渲染**:通过 Playwright 导出无损矢量 `workspace/resume.pdf`。
|
|
124
|
+
打印模式会检查所有页面,再解析最终 PDF 的每页尺寸与文本。PASS 表示本次检查通过;FAIL 是检查失败;UNVERIFIED 是浏览器/依赖等导致无法验收;DRAFT 只表示草稿准备完成。自动检查不等同于事实核实或通用 ATS 认证。
|
|
125
|
+
|
|
126
|
+
需要 Python 3.9+、Node.js 22.13+ 和 npm 运行依赖。运行 `npm install`;没有系统 Chromium 时使用 `npx playwright install chromium`。
|
|
149
127
|
|
|
150
128
|
---
|
|
151
129
|
|
|
152
130
|
## 6. CSS Design Tokens 调优与自愈速查表
|
|
153
131
|
|
|
154
|
-
|
|
132
|
+
所有排版参数均集中在当前运行目录的 `resume.html` 的 `:root` 变量中,可进行全局即时微调:
|
|
155
133
|
|
|
156
134
|
| CSS Token 变量名 | 默认推荐值 | 紧凑模式 (单页微调) | 宽松模式 (双页饱满) | 调优核心作用 |
|
|
157
135
|
| :--- | :--- | :--- | :--- | :--- |
|
|
@@ -178,24 +156,24 @@ knowme list
|
|
|
178
156
|
## 8. CLI 命令参考
|
|
179
157
|
|
|
180
158
|
```bash
|
|
181
|
-
# 1.
|
|
182
|
-
knowme
|
|
159
|
+
# 1. 一键全流程装配管线(用户资料 -> HTML画布 -> 打印与PDF验收)
|
|
160
|
+
knowme forge --profile-json candidate.json --role "AI Agent Engineer" --template modern --quiet
|
|
183
161
|
|
|
184
|
-
# 2.
|
|
185
|
-
|
|
162
|
+
# 2. 智能检索最匹配的 HTML 简历模板(混合评分引擎)
|
|
163
|
+
knowme search --role "AI Agent Engineer" --engine hybrid
|
|
186
164
|
|
|
187
|
-
# 3.
|
|
188
|
-
|
|
165
|
+
# 3. 从不完整资料生成草稿,不声明 PDF 已验收
|
|
166
|
+
knowme forge --profile-json draft.json --draft
|
|
189
167
|
|
|
190
|
-
# 4. 运行布局结构、Design Tokens
|
|
191
|
-
knowme validate
|
|
168
|
+
# 4. 运行布局结构、Design Tokens 与 ATS 双重质检
|
|
169
|
+
knowme validate /path/to/current-run/resume.html --json
|
|
192
170
|
|
|
193
171
|
# 5. 确定性导出无损矢量 A4 PDF
|
|
194
|
-
|
|
172
|
+
knowme render --input workspace/resume.html --output output/resume.pdf
|
|
195
173
|
|
|
196
174
|
# 6. 编译生成可视化模板画廊
|
|
197
175
|
knowme gallery
|
|
198
|
-
|
|
176
|
+
```
|
|
199
177
|
---
|
|
200
178
|
|
|
201
179
|
## 自动化测试与持续集成
|
|
@@ -212,8 +190,8 @@ python3 scripts/build/run-all-tests.py
|
|
|
212
190
|
本项目已配置为标准的 NPM Package,支持一键编译、测试与发布:
|
|
213
191
|
|
|
214
192
|
```bash
|
|
215
|
-
# 1.
|
|
216
|
-
npm run release --
|
|
193
|
+
# 1. 执行发布前自动化版本对齐、测试与打包预检
|
|
194
|
+
npm run release -- <version>
|
|
217
195
|
|
|
218
196
|
# 2. 发布至公共 NPM 注册表
|
|
219
197
|
npm publish --access public
|
package/SKILL.md
CHANGED
|
@@ -1,158 +1,49 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: knowme-careerforge
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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.
|
|
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.
|
|
6
|
+
metadata:
|
|
7
|
+
version: 0.0.6
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# KnowMe CareerForge
|
|
10
|
+
# KnowMe CareerForge
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
>
|
|
12
|
-
> *Core Mission: The goal is not to make the candidate look better than they are. The goal is to make their real strengths visible to the right opportunity.*
|
|
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.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## 1. Operating Rules & Core Constraints
|
|
17
|
-
|
|
18
|
-
When this skill is activated, you are NOT a generic text generator. You act as a coordinated council of 6 specialized personas:
|
|
19
|
-
1. **Career Researcher**: Discovers user facts, codebase architectures, and verifiable achievements.
|
|
20
|
-
2. **Career Strategist**: Analyzes target JDs and formulates career positioning strategy.
|
|
21
|
-
3. **Evidence Analyst**: Strictly enforces L1~L3 evidence classification and eliminates hallucinations.
|
|
22
|
-
4. **Resume Writer**: Crafts high-impact FAB (Feature-Advantage-Benefit) bullet points.
|
|
23
|
-
5. **Resume Designer**: Calibrates CSS Design Tokens within the HTML canvas.
|
|
24
|
-
6. **Resume Reviewer**: Executes automated layout, overflow, and ATS Dual-QA tests.
|
|
25
|
-
|
|
26
|
-
### Non-Negotiable Invariants:
|
|
27
|
-
- **Evidence-First (Anti-Hallucination)**: Every single claim on the resume MUST be grounded in candidate facts. Never invent unverified revenue numbers, false company tenures, or fake degrees.
|
|
28
|
-
- **HTML Intermediate Canvas as Source of Truth**: All modifications, tailoring, token tuning, and QA verification happen in `workspace/resume.html`. Never output raw unformatted text or bypass the HTML canvas.
|
|
29
|
-
- **Deterministic Rendering**: The final PDF (`workspace/resume.pdf`) is exported via multi-strategy auto-discovery renderers only after passing Dual QA with 100% compliance.
|
|
30
|
-
- **Quiet Execution Protocol (Strict Chat Invariant)**:
|
|
31
|
-
- **DO NOT** print hundreds of lines of raw HTML, full CSS stylesheets, or intermediate scratchpad python scripts to the user chat.
|
|
32
|
-
- Execute tool scripts silently in the background.
|
|
33
|
-
- Final response contract: One-line Value Proposition + Top 3 Grounded Evidence Highlights + Direct Output File Paths (`workspace/resume.pdf` and `workspace/resume.html`).
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 2. Input & Content Intelligence Layer (Repo-to-Resume Modes)
|
|
38
|
-
|
|
39
|
-
Identify the user's input scenario and select the corresponding mode:
|
|
40
|
-
|
|
41
|
-
```text
|
|
42
|
-
┌─────────────────────────────────────────────────────────────────────────────────┐
|
|
43
|
-
│ Input Modes & Evidence Mining Pipeline │
|
|
44
|
-
├─────────────────────────────────────────────────────────────────────────────────┤
|
|
45
|
-
│ Mode A: Codebase / Repo-to-Resume Mode │
|
|
46
|
-
│ User provides a project directory or Git repo (or runs in current workspace) │
|
|
47
|
-
│ ➔ Run `python3 scripts/evidence/extract-evidence.py --repo .` │
|
|
48
|
-
│ ➔ Extract tech stacks, frameworks, Docker/CI-CD, Git commits, and author info │
|
|
49
|
-
├─────────────────────────────────────────────────────────────────────────────────┤
|
|
50
|
-
│ Mode B: JD-Specific Mode │
|
|
51
|
-
│ User provides a target Job Description (text or file) │
|
|
52
|
-
│ ➔ Run `python3 scripts/evidence/analyze-jd.py --jd "path/to/jd.txt"` │
|
|
53
|
-
│ ➔ Extract Must-Have skills, Nice-to-Haves, hiring signals, and priority words │
|
|
54
|
-
├─────────────────────────────────────────────────────────────────────────────────┤
|
|
55
|
-
│ Mode C: Target-Role Mode │
|
|
56
|
-
│ User specifies a direction (e.g. "AI Agent Engineer", "Senior Architect") │
|
|
57
|
-
│ ➔ Match against `src/knowledge/roles/*.json` knowledge profiles │
|
|
58
|
-
└─────────────────────────────────────────────────────────────────────────────────┘
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Collecting Candidate Information:
|
|
62
|
-
1. **Basic Info**: Name, Contact (Email, Phone, Location, GitHub). If missing from user prompt, auto-detect from Git / `package.json` / `evidence-master.json` or prompt briefly.
|
|
63
|
-
2. **L1~L3 Evidence Classification**:
|
|
64
|
-
- **Level 1 (Direct Code/Config Evidence)**: Verified by code files, configuration files (`package.json`, `Dockerfile`, `go.mod`, `Cargo.toml`), API contracts, or Git commits.
|
|
65
|
-
- **Level 2 (Structural/Dependency Evidence)**: Deduced from directory structure, tech stack dependencies, and architectural patterns.
|
|
66
|
-
- **Level 3 (Contextual Inference)**: Reasonable contextual deduction (MUST use conservative phrasing, e.g., *"Participated in the design and implementation of..."*).
|
|
67
|
-
- **Unsupported**: Facts not present in candidate records. **NEVER WRITE INTO RESUME**.
|
|
68
|
-
|
|
69
|
-
---
|
|
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.
|
|
70
15
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
You MUST execute the following 6 stages in exact sequence:
|
|
74
|
-
|
|
75
|
-
```text
|
|
76
|
-
┌──────────────┐ ┌──────────────┐ ┌──────────────────┐
|
|
77
|
-
│ 1. KNOW ME │ ──> │ 2. DEFINE │ ──> │ 3. UNDERSTAND │
|
|
78
|
-
│ Evidence L1~3│ │ Career Goal │ │ JD & Signals │
|
|
79
|
-
└──────────────┘ └──────────────┘ └──────────────────┘
|
|
80
|
-
│
|
|
81
|
-
▼
|
|
82
|
-
┌──────────────┐ ┌──────────────┐ ┌──────────────────┐
|
|
83
|
-
│ 6. REVIEW/QA │ <── │ 5. CAREER │ <── │ 4. POSITION │
|
|
84
|
-
│ Dual QA & PDF│ │ FORGE HTML │ │ Strategy & Map │
|
|
85
|
-
└──────────────┘ └──────────────┘ └──────────────────┘
|
|
86
|
-
```
|
|
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.
|
|
87
17
|
|
|
88
|
-
|
|
89
|
-
You can run the full end-to-end pipeline in a single command:
|
|
90
|
-
```bash
|
|
91
|
-
python3 scripts/pipeline/forge.py --repo . --role "<Target Role>" --jd "<path/to/jd.txt>" --template "<minimal|modern|executive|classic>" --quiet
|
|
92
|
-
```
|
|
93
|
-
Or via CLI:
|
|
94
|
-
```bash
|
|
95
|
-
knowme forge --repo . --role "<Target Role>" --template modern --quiet
|
|
96
|
-
```
|
|
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.
|
|
97
19
|
|
|
98
|
-
|
|
20
|
+
## Preserve the artifact lifecycle
|
|
99
21
|
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
python3 scripts/evidence/extract-evidence.py --repo . --output workspace/evidence-master.json --quiet
|
|
103
|
-
```
|
|
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.
|
|
104
23
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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.
|
|
109
28
|
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
python3 scripts/template/search-template.py "<Target Role>" --style "<minimal|modern|executive|classic>" --target-pages 1
|
|
113
|
-
```
|
|
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.
|
|
114
30
|
|
|
115
|
-
#### Step 5: Instantiate Intermediate HTML Working Canvas (CareerForge)
|
|
116
31
|
```bash
|
|
117
|
-
|
|
118
|
-
|
|
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
|
|
119
34
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
# 1. Run Layout QA (DOM height & overflow validation)
|
|
123
|
-
python3 scripts/validation/validate-resume.py --html workspace/resume.html --expected-pages 1
|
|
124
|
-
```
|
|
125
|
-
# 2. If overflow occurs, tune CSS tokens in workspace/resume.html:
|
|
126
|
-
# - Reduce --resume-space-section (e.g., 11pt -> 9.5pt)
|
|
127
|
-
# - Reduce --resume-font-size-body (e.g., 9.2pt -> 9.0pt)
|
|
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
|
|
128
37
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
python3 scripts/rendering/render-pdf.py
|
|
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
|
|
132
41
|
```
|
|
133
42
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
## 4. Final Response Delivery Contract (Strict Template)
|
|
137
|
-
|
|
138
|
-
Once `workspace/resume.pdf` is generated, deliver your final response strictly in this clear, professional structure:
|
|
139
|
-
|
|
140
|
-
```markdown
|
|
141
|
-
### 🎯 Career Positioning & Value Proposition
|
|
142
|
-
> **[Candidate Name] · [Target Role Title]**
|
|
143
|
-
> *[15~25 words Core Value Proposition highlighting key strengths]*
|
|
43
|
+
## Assemble and inspect
|
|
144
44
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
### 🛡️ Top Grounded Evidence Highlights (L1/L2)
|
|
148
|
-
1. **[Key Domain / Architecture]**: [Action Verb + Grounded Achievement + Metrics] *(Evidence: [Source])*
|
|
149
|
-
2. **[Core Tech Stack]**: [Engineered feature with exact frameworks] *(Evidence: [Source])*
|
|
150
|
-
3. **[Delivery & Impact]**: [System stability / CI-CD / Performance metric] *(Evidence: [Source])*
|
|
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).
|
|
151
46
|
|
|
152
|
-
|
|
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.
|
|
153
48
|
|
|
154
|
-
|
|
155
|
-
- **PDF Resume (Deterministic A4)**: `workspace/resume.pdf` (Passed 100% Dual QA)
|
|
156
|
-
- **HTML Working Canvas**: `workspace/resume.html` (Design Tokens Calibrated)
|
|
157
|
-
- **Master Profile JSON**: `workspace/evidence-master.json` (Traceable Evidence底座)
|
|
158
|
-
```
|
|
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.
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
description: An agent-native skill for self-discovery, career positioning, and tailored resume engineering.
|
|
3
|
-
globs: ["workspace/*", "src/**/*", "scripts/**/*"]
|
|
4
|
-
---
|
|
1
|
+
# KnowMe CareerForge
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Know Yourself. Define Your Direction. Forge Your Opportunity.
|
|
9
|
-
|
|
10
|
-
When activated, follow the Evidence-First & Quiet Execution Protocol (see `scripts/Agent.md`):
|
|
11
|
-
1. **Evidence Mining (repo-to-resume)**: Extract codebase facts via `python3 scripts/evidence/extract-evidence.py --repo .` or run one-shot `python3 scripts/pipeline/forge.py`.
|
|
12
|
-
2. **Understand Target**: Analyze target JD via `python3 scripts/evidence/analyze-jd.py`.
|
|
13
|
-
3. **Template Search**: Match template (`python3 scripts/template/search-template.py`).
|
|
14
|
-
4. **Intermediate Canvas**: Instantiate `workspace/resume.html` via `python3 scripts/template/instantiate-resume.py` and calibrate CSS design tokens.
|
|
15
|
-
5. **Review & Dual QA**: Run `python3 scripts/validation/validate-resume.py`.
|
|
16
|
-
6. **PDF Delivery**: Export `workspace/resume.pdf` via `python3 scripts/rendering/render-pdf.py`.
|
|
17
|
-
7. **Quiet Delivery**: Execute silently in background; deliver concise executive summary and final file path (`workspace/resume.pdf`).
|
|
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.
|
|
@@ -1,12 +1,10 @@
|
|
|
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.6
|
|
4
4
|
entrypoint: SKILL.md
|
|
5
5
|
tools:
|
|
6
6
|
- name: forge
|
|
7
7
|
command: python3 scripts/pipeline/forge.py
|
|
8
|
-
- name: extract-evidence
|
|
9
|
-
command: python3 scripts/evidence/extract-evidence.py
|
|
10
8
|
- name: search-template
|
|
11
9
|
command: python3 scripts/template/search-template.py
|
|
12
10
|
- name: analyze-jd
|
|
@@ -18,7 +16,7 @@ tools:
|
|
|
18
16
|
- name: render-pdf
|
|
19
17
|
command: python3 scripts/rendering/render-pdf.py
|
|
20
18
|
rules:
|
|
21
|
-
- "Execute tools silently in background (DO NOT print raw HTML, full CSS, or scripts in chat)."
|
|
22
|
-
- "Use
|
|
23
|
-
- "Deliver
|
|
24
|
-
- "Reference
|
|
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."
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
|
|
2
|
+
description: Resume drafting and verified delivery from user-provided facts
|
|
3
|
+
alwaysApply: false
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# KnowMe CareerForge
|
|
6
|
+
# KnowMe CareerForge
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
2. **Repo-to-Resume**: Extract codebase facts using `python3 scripts/evidence/extract-evidence.py --repo .` or run one-shot `python3 scripts/pipeline/forge.py`.
|
|
10
|
-
3. **HTML Canvas**: Edit exclusively in `workspace/resume.html` Intermediate Working Canvas (`scripts/template/instantiate-resume.py`).
|
|
11
|
-
4. **Quiet Protocol**: Execute scripts silently in background; do not output raw HTML, CSS, or scripts into the chat.
|
|
12
|
-
5. **Deterministic PDF**: Validate via `python3 scripts/validation/validate-resume.py` and export via `python3 scripts/rendering/render-pdf.py`.
|
|
13
|
-
6. **Architecture Guide**: Refer to `scripts/Agent.md` for toolchain domain specifications.
|
|
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.
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
# KnowMe CareerForge
|
|
2
|
-
# Trigger: Career discovery, resume tailoring, JD analysis, repo-to-resume
|
|
1
|
+
# KnowMe CareerForge
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
1. Extract candidate facts using `python3 scripts/evidence/extract-evidence.py --repo .` or execute one-shot `python3 scripts/pipeline/forge.py`.
|
|
6
|
-
2. Tag all experience items with Evidence Level (L1~L3 only, strictly anti-hallucination).
|
|
7
|
-
3. Analyze target JD requirements using `python3 scripts/evidence/analyze-jd.py`.
|
|
8
|
-
4. Recommend best template using `python3 scripts/template/search-template.py`.
|
|
9
|
-
5. Instantiate `workspace/resume.html` using `python3 scripts/template/instantiate-resume.py` and calibrate CSS design tokens.
|
|
10
|
-
6. Validate DOM fit and ATS compatibility using `python3 scripts/validation/validate-resume.py`.
|
|
11
|
-
7. Export final deterministic PDF using `python3 scripts/rendering/render-pdf.py`.
|
|
12
|
-
8. Execute silently in background; deliver concise executive summary and final file path (`workspace/resume.pdf`).
|
|
13
|
-
9. Reference `scripts/Agent.md` for toolchain domain specifications.
|
|
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.
|
|
@@ -93,7 +93,10 @@ function runInit(options) {
|
|
|
93
93
|
fs.mkdirSync(claudeDir, { recursive: true });
|
|
94
94
|
copyDirRecursive(path.join(rootDir, 'scripts'), path.join(claudeDir, 'scripts'));
|
|
95
95
|
copyDirRecursive(path.join(rootDir, 'src'), path.join(claudeDir, 'src'));
|
|
96
|
+
copyDirRecursive(path.join(rootDir, 'references'), path.join(claudeDir, 'references'));
|
|
96
97
|
fs.copyFileSync(path.join(rootDir, 'SKILL.md'), path.join(claudeDir, 'SKILL.md'));
|
|
98
|
+
fs.copyFileSync(path.join(rootDir, 'AGENT.md'), path.join(claudeDir, 'AGENT.md'));
|
|
99
|
+
fs.copyFileSync(path.join(rootDir, 'ARCHITECTURE.md'), path.join(claudeDir, 'ARCHITECTURE.md'));
|
|
97
100
|
fs.copyFileSync(path.join(rootDir, 'skill.json'), path.join(claudeDir, 'skill.json'));
|
|
98
101
|
console.log(`[✓] Claude Code Skill fully bundled -> ${claudeDir}`);
|
|
99
102
|
break;
|
|
@@ -103,7 +106,10 @@ function runInit(options) {
|
|
|
103
106
|
fs.mkdirSync(codexDir, { recursive: true });
|
|
104
107
|
copyDirRecursive(path.join(rootDir, 'scripts'), path.join(codexDir, 'scripts'));
|
|
105
108
|
copyDirRecursive(path.join(rootDir, 'src'), path.join(codexDir, 'src'));
|
|
109
|
+
copyDirRecursive(path.join(rootDir, 'references'), path.join(codexDir, 'references'));
|
|
106
110
|
fs.copyFileSync(path.join(rootDir, 'SKILL.md'), path.join(codexDir, 'SKILL.md'));
|
|
111
|
+
fs.copyFileSync(path.join(rootDir, 'AGENT.md'), path.join(codexDir, 'AGENT.md'));
|
|
112
|
+
fs.copyFileSync(path.join(rootDir, 'ARCHITECTURE.md'), path.join(codexDir, 'ARCHITECTURE.md'));
|
|
107
113
|
fs.copyFileSync(path.join(rootDir, 'skill.json'), path.join(codexDir, 'skill.json'));
|
|
108
114
|
if (fs.existsSync(path.join(rootDir, 'agents', 'codex', 'knowme-careerforge.yaml'))) {
|
|
109
115
|
fs.copyFileSync(path.join(rootDir, 'agents', 'codex', 'knowme-careerforge.yaml'), path.join(codexDir, 'skill.yaml'));
|
|
@@ -139,7 +145,10 @@ function runInit(options) {
|
|
|
139
145
|
fs.mkdirSync(opencodeDir, { recursive: true });
|
|
140
146
|
copyDirRecursive(path.join(rootDir, 'scripts'), path.join(opencodeDir, 'scripts'));
|
|
141
147
|
copyDirRecursive(path.join(rootDir, 'src'), path.join(opencodeDir, 'src'));
|
|
148
|
+
copyDirRecursive(path.join(rootDir, 'references'), path.join(opencodeDir, 'references'));
|
|
142
149
|
fs.copyFileSync(path.join(rootDir, 'SKILL.md'), path.join(opencodeDir, 'SKILL.md'));
|
|
150
|
+
fs.copyFileSync(path.join(rootDir, 'AGENT.md'), path.join(opencodeDir, 'AGENT.md'));
|
|
151
|
+
fs.copyFileSync(path.join(rootDir, 'ARCHITECTURE.md'), path.join(opencodeDir, 'ARCHITECTURE.md'));
|
|
143
152
|
fs.copyFileSync(path.join(rootDir, 'skill.json'), path.join(opencodeDir, 'skill.json'));
|
|
144
153
|
console.log(`[✓] OpenCode Skill fully bundled -> ${opencodeDir}`);
|
|
145
154
|
break;
|