knowme-careerforge-skill 0.0.4 → 0.0.7
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 +220 -0
- package/README.md +46 -63
- package/README.zh-CN.md +47 -66
- package/SKILL.md +38 -135
- package/agents/claude/knowme-careerforge.md +2 -17
- package/agents/codex/knowme-careerforge.yaml +2 -20
- package/agents/cursor/knowme-careerforge.mdc +4 -13
- package/agents/gemini/knowme-careerforge.json +1 -1
- package/agents/opencode/skill.yaml +1 -1
- package/agents/windsurf/knowme-careerforge.rules +2 -12
- package/dist/cli/src/commands/init.js +51 -32
- package/dist/cli/src/index.js +25 -21
- 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 +15 -4
- package/references/01-evidence-mining.md +35 -0
- package/references/02-career-goal.md +40 -0
- package/references/03-jd-analysis.md +32 -0
- package/references/04-template-selection.md +30 -0
- package/references/05-html-canvas-tokens.md +12 -0
- package/references/06-qa-and-rendering.md +27 -0
- package/references/07-artifact-contract.md +83 -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 +27 -9
- package/scripts/contracts/profile.py +101 -0
- package/scripts/evidence/extract-evidence.py +109 -62
- package/scripts/pipeline/forge.py +276 -136
- package/scripts/rendering/README.md +65 -0
- package/scripts/rendering/browser-engine.d.ts +15 -0
- package/scripts/rendering/browser-engine.js +408 -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 -173
- package/scripts/template/search-template.py +89 -3
- 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 +7 -6
- package/src/knowledge/index.json +391 -3
- package/src/knowledge/resume-schema.json +377 -71
- package/src/knowledge/templates.json +389 -1
- package/src/references/01-evidence-mining.md +24 -30
- package/src/references/02-career-goal.md +4 -2
- package/src/references/03-jd-analysis.md +5 -17
- package/src/references/04-template-selection.md +20 -33
- package/src/references/05-html-canvas-tokens.md +6 -45
- package/src/references/06-qa-and-rendering.md +16 -43
- package/src/references/07-artifact-contract.md +83 -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 +14 -4
- package/src/templates/common/base.css +32 -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 +58 -6
- 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 +12 -1
- package/src/templates/minimal/canvas.html +21 -0
- package/src/templates/minimal/sample-profile.json +86 -0
- package/src/templates/minimal/style.css +24 -0
- 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 +48 -1
- 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/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/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?
|
|
@@ -47,7 +46,7 @@ Self Discovery Tailored Career Story
|
|
|
47
46
|
& Evidence & Engineering Delivery
|
|
48
47
|
```
|
|
49
48
|
|
|
50
|
-
- **KnowMe (Self-Discovery & Evidence Engine)**: Helps candidates discover who they are,
|
|
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.
|
|
51
50
|
- **CareerForge (Career Positioning & Resume Engineering)**: Translates genuine strengths into targeted positioning for specific job opportunities, tailoring high-impact content inside an **HTML Intermediate Working Canvas** with **Design Tokens**, and delivering deterministic, pixel-perfect PDFs via Playwright.
|
|
52
51
|
|
|
53
52
|
---
|
|
@@ -98,56 +97,40 @@ knowme list
|
|
|
98
97
|
|
|
99
98
|
---
|
|
100
99
|
|
|
101
|
-
###
|
|
100
|
+
### Platform entrypoints and runtime resources
|
|
101
|
+
|
|
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` |
|
|
102
110
|
|
|
103
|
-
|
|
104
|
-
| :--- | :--- | :--- |
|
|
105
|
-
| **Cursor** | `.cursor/rules/knowme-careerforge.mdc` | `cp SKILL.md .cursor/rules/knowme-careerforge.mdc` |
|
|
106
|
-
| **Claude Code** | `~/.claude/skills/knowme-careerforge/` | `cp -r knowme-careerforge-skill ~/.claude/skills/` |
|
|
107
|
-
| **Codex** | `~/.codex/skills/knowme-careerforge/` | `cp -r knowme-careerforge-skill ~/.codex/skills/` |
|
|
108
|
-
| **Windsurf** | `.windsurfrules` | `cat agents/windsurf/knowme-careerforge.rules >> .windsurfrules` |
|
|
109
|
-
| **OpenCode** | `.opencode/skills/knowme-careerforge/` | `cp -r knowme-careerforge-skill ~/.opencode/skills/` |
|
|
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.
|
|
110
112
|
|
|
111
113
|
---
|
|
112
114
|
|
|
113
|
-
## 4.
|
|
115
|
+
## 4. User input and artifact lifecycle
|
|
114
116
|
|
|
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
|
-
```
|
|
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.
|
|
130
118
|
|
|
131
|
-
|
|
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).
|
|
132
120
|
|
|
133
|
-
## 5.
|
|
121
|
+
## 5. Isolated runs and final acceptance
|
|
134
122
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
123
|
+
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.
|
|
124
|
+
|
|
125
|
+
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
126
|
|
|
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.
|
|
127
|
+
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 --summary` keeps stdout concise while retaining internal snapshots and diagnostics.
|
|
145
128
|
|
|
146
129
|
---
|
|
147
130
|
|
|
148
131
|
## 6. Token Self-Healing & Visual Tuning Cheat Sheet
|
|
149
132
|
|
|
150
|
-
All visual parameters are concentrated in `:root` variables inside `
|
|
133
|
+
All visual parameters are concentrated in `:root` variables inside the current run’s `resume.html`:
|
|
151
134
|
|
|
152
135
|
| CSS Token | Default | Compact (1-Page Squeeze) | Relaxed (2-Page Flow) | Purpose |
|
|
153
136
|
| :--- | :--- | :--- | :--- | :--- |
|
|
@@ -174,24 +157,24 @@ All visual parameters are concentrated in `:root` variables inside `workspace/re
|
|
|
174
157
|
## 8. CLI & Script Reference
|
|
175
158
|
|
|
176
159
|
```bash
|
|
177
|
-
# 1.
|
|
178
|
-
knowme
|
|
160
|
+
# 1. One-shot resume engineering pipeline (user facts -> canvas -> QA -> PDF)
|
|
161
|
+
knowme forge --profile-json candidate.json --role "AI Agent Engineer" --template modern --quiet
|
|
179
162
|
|
|
180
|
-
# 2.
|
|
181
|
-
|
|
163
|
+
# 2. Search best template for target role (hybrid engine)
|
|
164
|
+
knowme search --role "AI Agent Engineer" --engine hybrid
|
|
182
165
|
|
|
183
|
-
# 3.
|
|
184
|
-
|
|
166
|
+
# 3. Prepare an incomplete draft without PDF delivery
|
|
167
|
+
knowme forge --profile-json draft.json --draft
|
|
185
168
|
|
|
186
169
|
# 4. Validate working canvas layout & ATS compliance
|
|
187
|
-
knowme validate
|
|
170
|
+
knowme validate /path/to/current-run/resume.html --json
|
|
188
171
|
|
|
189
172
|
# 5. Render deterministic pixel-perfect PDF
|
|
190
|
-
|
|
173
|
+
knowme render --input workspace/resume.html --output output/resume.pdf
|
|
191
174
|
|
|
192
175
|
# 6. Build & view static HTML Template Gallery
|
|
193
176
|
knowme gallery
|
|
194
|
-
|
|
177
|
+
```
|
|
195
178
|
---
|
|
196
179
|
|
|
197
180
|
## Automated Test Suite
|
|
@@ -208,8 +191,8 @@ python3 scripts/build/run-all-tests.py
|
|
|
208
191
|
This package is ready to be built, tested, and published to the NPM Registry:
|
|
209
192
|
|
|
210
193
|
```bash
|
|
211
|
-
# 1. Automated release preparation & verification
|
|
212
|
-
npm run release --
|
|
194
|
+
# 1. Automated release preparation & verification (e.g. patch/minor/major)
|
|
195
|
+
npm run release -- <version>
|
|
213
196
|
|
|
214
197
|
# 2. Publish to public NPM registry
|
|
215
198
|
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?
|
|
@@ -49,7 +46,7 @@ knowme-careerforge-skill
|
|
|
49
46
|
真实经历与证据 工程化定制交付
|
|
50
47
|
```
|
|
51
48
|
|
|
52
|
-
- **KnowMe
|
|
49
|
+
- **KnowMe(自我认知与证据挖掘引擎)**:帮助候选人深入认知自我,系统梳理用户提供的真实经历与辅助材料,提炼真正具备竞争壁垒的优势点。
|
|
53
50
|
- **CareerForge(职业定位与简历工程引擎)**:将候选人的真实优势精准对齐目标岗位(JD),以 **HTML 中间工作区(Intermediate Canvas)** 与 **Design Tokens(设计系统变量)** 为工作场进行微调排版,最终通过 Playwright 无头浏览器导出确定性、像素级的矢量 PDF。
|
|
54
51
|
|
|
55
52
|
---
|
|
@@ -102,56 +99,40 @@ knowme list
|
|
|
102
99
|
|
|
103
100
|
---
|
|
104
101
|
|
|
105
|
-
###
|
|
102
|
+
### 平台入口与运行资源
|
|
106
103
|
|
|
107
|
-
| 平台 |
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
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 更新路径。
|
|
114
114
|
|
|
115
115
|
---
|
|
116
116
|
|
|
117
|
-
## 4.
|
|
117
|
+
## 4. 用户信息与资料生命周期
|
|
118
118
|
|
|
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
|
-
```
|
|
119
|
+
当前功能依靠用户描述、已有简历和明确提供的支持材料,由宿主 Agent 组织与定制内容;不支持代码仓库分析回填。目标岗位即可开始收集资料,JD 可选;没有候选人材料时先提问并等待,不生成演示履历。
|
|
134
120
|
|
|
135
|
-
|
|
121
|
+
Draft 保留不完整资料,Master 保存本次已知事实,Variant 记录来源 Master 的摘要并派生岗位表达。缺失值省略或 null,不补示例姓名、默认荣誉和任意指标。完整规则见 [资料与验收契约](references/07-artifact-contract.md)。
|
|
136
122
|
|
|
137
|
-
## 5.
|
|
123
|
+
## 5. 独立运行与最终验收
|
|
138
124
|
|
|
139
|
-
|
|
140
|
-
Know (证据分级) ──> Define (明确目标) ──> Understand (洞察JD) ──> Position (制定策略) ──> Forge (HTML修改场) ──> Review (双重QA)
|
|
141
|
-
```
|
|
125
|
+
每次 forge 在 `workspace/runs/<runId>/` 保存输入快照、Master、Variant、画布、QA 和运行清单。通过验收后才写入本次 PDF;失败的清单不会返回旧文件作为交付。可以用 `--output` 和 `--html-output` 指定已验收副本位置。
|
|
142
126
|
|
|
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`。
|
|
127
|
+
打印模式会检查所有页面,再解析最终 PDF 的每页尺寸与文本。PASS 表示本次检查通过;FAIL 是检查失败;UNVERIFIED 是浏览器/依赖等导致无法验收;DRAFT 只表示草稿准备完成。自动检查不等同于事实核实或通用 ATS 认证。
|
|
128
|
+
|
|
129
|
+
在安装目录按 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 --summary` 精简终端输出,内部快照与诊断仍保留。
|
|
149
130
|
|
|
150
131
|
---
|
|
151
132
|
|
|
152
133
|
## 6. CSS Design Tokens 调优与自愈速查表
|
|
153
134
|
|
|
154
|
-
|
|
135
|
+
所有排版参数均集中在当前运行目录的 `resume.html` 的 `:root` 变量中,可进行全局即时微调:
|
|
155
136
|
|
|
156
137
|
| CSS Token 变量名 | 默认推荐值 | 紧凑模式 (单页微调) | 宽松模式 (双页饱满) | 调优核心作用 |
|
|
157
138
|
| :--- | :--- | :--- | :--- | :--- |
|
|
@@ -178,24 +159,24 @@ knowme list
|
|
|
178
159
|
## 8. CLI 命令参考
|
|
179
160
|
|
|
180
161
|
```bash
|
|
181
|
-
# 1.
|
|
182
|
-
knowme
|
|
162
|
+
# 1. 一键全流程装配管线(用户资料 -> HTML画布 -> 打印与PDF验收)
|
|
163
|
+
knowme forge --profile-json candidate.json --role "AI Agent Engineer" --template modern --quiet
|
|
183
164
|
|
|
184
|
-
# 2.
|
|
185
|
-
|
|
165
|
+
# 2. 智能检索最匹配的 HTML 简历模板(混合评分引擎)
|
|
166
|
+
knowme search --role "AI Agent Engineer" --engine hybrid
|
|
186
167
|
|
|
187
|
-
# 3.
|
|
188
|
-
|
|
168
|
+
# 3. 从不完整资料生成草稿,不声明 PDF 已验收
|
|
169
|
+
knowme forge --profile-json draft.json --draft
|
|
189
170
|
|
|
190
|
-
# 4. 运行布局结构、Design Tokens
|
|
191
|
-
knowme validate
|
|
171
|
+
# 4. 运行布局结构、Design Tokens 与 ATS 双重质检
|
|
172
|
+
knowme validate /path/to/current-run/resume.html --json
|
|
192
173
|
|
|
193
174
|
# 5. 确定性导出无损矢量 A4 PDF
|
|
194
|
-
|
|
175
|
+
knowme render --input workspace/resume.html --output output/resume.pdf
|
|
195
176
|
|
|
196
177
|
# 6. 编译生成可视化模板画廊
|
|
197
178
|
knowme gallery
|
|
198
|
-
|
|
179
|
+
```
|
|
199
180
|
---
|
|
200
181
|
|
|
201
182
|
## 自动化测试与持续集成
|
|
@@ -212,8 +193,8 @@ python3 scripts/build/run-all-tests.py
|
|
|
212
193
|
本项目已配置为标准的 NPM Package,支持一键编译、测试与发布:
|
|
213
194
|
|
|
214
195
|
```bash
|
|
215
|
-
# 1.
|
|
216
|
-
npm run release --
|
|
196
|
+
# 1. 执行发布前自动化版本对齐、测试与打包预检
|
|
197
|
+
npm run release -- <version>
|
|
217
198
|
|
|
218
199
|
# 2. 发布至公共 NPM 注册表
|
|
219
200
|
npm publish --access public
|
package/SKILL.md
CHANGED
|
@@ -1,168 +1,71 @@
|
|
|
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.7
|
|
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
|
+
Create a readable resume from the user's descriptions, existing resume and explicitly supplied material. The host Agent selects and rewrites facts; tools bind templates and check printing. 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
|
-
|
|
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
|
-
### Reference Manuals (L3 Domain Rules):
|
|
36
|
-
- **Stage 1 (Know Me)**: `references/01-evidence-mining.md`
|
|
37
|
-
- **Stage 2 (Define Goal)**: `references/02-career-goal.md`
|
|
38
|
-
- **Stage 3 (Understand JD)**: `references/03-jd-analysis.md`
|
|
39
|
-
- **Stage 4 (Position & Select)**: `references/04-template-selection.md`
|
|
40
|
-
- **Stage 5 (Forge Canvas)**: `references/05-html-canvas-tokens.md`
|
|
41
|
-
- **Stage 6 (Review & QA)**: `references/06-qa-and-rendering.md`
|
|
42
|
-
|
|
43
|
-
*See `AGENT.md` for strict editorial standards and `ARCHITECTURE.md` for system architecture.*
|
|
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: “请发已有简历,或告诉我姓名、最近一段工作经历(公司、时间、做了什么、用过哪些技术);已有的信息不用重复。”
|
|
44
17
|
|
|
45
|
-
|
|
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. If experience is known but the name is missing, ask just for the name needed for PDF delivery, 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:** preserve those edits and validate/render that canvas to a new revision path; do not overwrite it from an older profile.
|
|
46
22
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Identify the user's input scenario and select the corresponding mode:
|
|
50
|
-
|
|
51
|
-
```text
|
|
52
|
-
┌─────────────────────────────────────────────────────────────────────────────────┐
|
|
53
|
-
│ Input Modes & Evidence Mining Pipeline │
|
|
54
|
-
├─────────────────────────────────────────────────────────────────────────────────┤
|
|
55
|
-
│ Mode A: Codebase / Repo-to-Resume Mode │
|
|
56
|
-
│ User provides a project directory or Git repo (or runs in current workspace) │
|
|
57
|
-
│ ➔ Run `python3 scripts/evidence/extract-evidence.py --repo .` │
|
|
58
|
-
│ ➔ Extract tech stacks, frameworks, Docker/CI-CD, Git commits, and author info │
|
|
59
|
-
├─────────────────────────────────────────────────────────────────────────────────┤
|
|
60
|
-
│ Mode B: JD-Specific Mode │
|
|
61
|
-
│ User provides a target Job Description (text or file) │
|
|
62
|
-
│ ➔ Run `python3 scripts/evidence/analyze-jd.py --jd "path/to/jd.txt"` │
|
|
63
|
-
│ ➔ Extract Must-Have skills, Nice-to-Haves, hiring signals, and priority words │
|
|
64
|
-
├─────────────────────────────────────────────────────────────────────────────────┤
|
|
65
|
-
│ Mode C: Target-Role Mode │
|
|
66
|
-
│ User specifies a direction (e.g. "AI Agent Engineer", "Senior Architect") │
|
|
67
|
-
│ ➔ Match against `src/knowledge/roles/*.json` knowledge profiles │
|
|
68
|
-
└─────────────────────────────────────────────────────────────────────────────────┘
|
|
69
|
-
```
|
|
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.
|
|
70
24
|
|
|
71
|
-
|
|
72
|
-
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.
|
|
73
|
-
2. **L1~L3 Evidence Classification**:
|
|
74
|
-
- **Level 1 (Direct Code/Config Evidence)**: Verified by code files, configuration files (`package.json`, `Dockerfile`, `go.mod`, `Cargo.toml`), API contracts, or Git commits.
|
|
75
|
-
- **Level 2 (Structural/Dependency Evidence)**: Deduced from directory structure, tech stack dependencies, and architectural patterns.
|
|
76
|
-
- **Level 3 (Contextual Inference)**: Reasonable contextual deduction (MUST use conservative phrasing, e.g., *"Participated in the design and implementation of..."*).
|
|
77
|
-
- **Unsupported**: Facts not present in candidate records. **NEVER WRITE INTO RESUME**.
|
|
25
|
+
## 2. Compose once, choose a layout
|
|
78
26
|
|
|
79
|
-
|
|
27
|
+
Before composing, read [the source-to-claim rules](references/01-evidence-mining.md) once and check the rewritten claims against the original user material. Comparing a generated profile with its own PDF does not check factual fidelity. Keep a single editable profile of supplied facts. Read [the artifact contract](references/07-artifact-contract.md) for its short input example and lifecycle. The pipeline creates Master/Variant snapshots; the user need not write JSON or receive every snapshot. Master means this run's known facts, not that every optional field is complete.
|
|
80
28
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
You MUST execute the following 6 stages in exact sequence:
|
|
84
|
-
|
|
85
|
-
```text
|
|
86
|
-
┌──────────────┐ ┌──────────────┐ ┌──────────────────┐
|
|
87
|
-
│ 1. KNOW ME │ ──> │ 2. DEFINE │ ──> │ 3. UNDERSTAND │
|
|
88
|
-
│ Evidence L1~3│ │ Career Goal │ │ JD & Signals │
|
|
89
|
-
└──────────────┘ └──────────────┘ └──────────────────┘
|
|
90
|
-
│
|
|
91
|
-
▼
|
|
92
|
-
┌──────────────┐ ┌──────────────┐ ┌──────────────────┐
|
|
93
|
-
│ 6. REVIEW/QA │ <── │ 5. CAREER │ <── │ 4. POSITION │
|
|
94
|
-
│ Dual QA & PDF│ │ FORGE HTML │ │ Strategy & Map │
|
|
95
|
-
└──────────────┘ └──────────────┘ └──────────────────┘
|
|
96
|
-
```
|
|
29
|
+
Write short, concrete bullets. A useful default is a brief optional summary, compact skill groups, and evidence in work/project entries. Do not repeat the same achievement in summary, work and an invented project. A project section is optional: add one only when supplied project detail adds something distinct. Metrics and technical mechanisms appear only when supplied; duties without metrics remain valid. Follow the user's requested level of detail.
|
|
97
30
|
|
|
98
|
-
|
|
99
|
-
You can run the full end-to-end pipeline in a single command:
|
|
100
|
-
```bash
|
|
101
|
-
python3 scripts/pipeline/forge.py --repo . --role "<Target Role>" --jd "<path/to/jd.txt>" --template "<minimal|modern|executive|classic>" --quiet
|
|
102
|
-
```
|
|
103
|
-
Or via CLI:
|
|
104
|
-
```bash
|
|
105
|
-
knowme forge --repo . --role "<Target Role>" --template modern --quiet
|
|
106
|
-
```
|
|
31
|
+
Read [template guidance](references/04-template-selection.md) when choosing a template. Honor an explicit choice; otherwise choose for actual content length and hierarchy, or omit `--template` for ranked selection. Do not hardcode minimal because the role is backend. State the actual `templateUsed` in delivery. Each template has one structural source, `canvas.html`; previews bind fictional data through the same renderer.
|
|
107
32
|
|
|
108
|
-
|
|
33
|
+
## 3. Prepare runtime, generate
|
|
109
34
|
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
python3 scripts/evidence/extract-evidence.py --repo . --output workspace/evidence-master.json --quiet
|
|
113
|
-
```
|
|
35
|
+
Use the absolute SKILL.md path already returned by the host to resolve `<skill-root>`. The model name does not determine the installation directory: a Gemini model may be running through a host that resolves `.claude/skills`. If unavailable, inspect the host's configured skill location; do not recursively search the home directory. Candidate files belong in the user's workspace, never the installation directory.
|
|
114
36
|
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
python3 scripts/evidence/analyze-jd.py --jd "path/to/jd.txt"
|
|
118
|
-
```
|
|
37
|
+
After there is sufficient candidate material, and before the first PDF build, run:
|
|
119
38
|
|
|
120
|
-
#### Step 4: Search & Select Template (Position)
|
|
121
39
|
```bash
|
|
122
|
-
|
|
40
|
+
node <skill-root>/scripts/rendering/browser-engine.js --check-runtime
|
|
123
41
|
```
|
|
124
42
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
```
|
|
43
|
+
READY only checks runtime availability, not resume quality. If unavailable, use its diagnostics and the installed package.json to prepare dependencies once under the host's permission rules. With a lockfile use `npm ci --omit=dev`; otherwise use `npm install --omit=dev`, in `<skill-root>`. Do not guess and install packages one error at a time. If package.json or required bundled scripts are absent, the installation is incomplete: repair it from the project package rather than synthesizing a manifest or installing guessed dependencies. Chromium is also required. If setup is blocked, report UNVERIFIED and offer a requested Draft; do not repeatedly run the full pipeline unchanged.
|
|
44
|
+
|
|
45
|
+
For a new resume, keep internal files under `workspace/` and publish only the readable deliverables under `resume/` (or the user's chosen locations):
|
|
129
46
|
|
|
130
|
-
#### Step 6: Review, Dual QA & PDF Export
|
|
131
47
|
```bash
|
|
132
|
-
|
|
133
|
-
python3 scripts/validation/validate-resume.py --html workspace/resume.html --expected-pages 1
|
|
48
|
+
python3 <skill-root>/scripts/pipeline/forge.py --profile-json workspace/profile.json --workspace workspace/runs --role "<target role>" --output resume/resume.pdf --html-output resume/resume.html --summary
|
|
134
49
|
```
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
50
|
+
|
|
51
|
+
Add `--template <chosen-id>` for an explicit layout. Drafts use `--draft` without PDF/copy flags; return the exact HTML path reported. Each invocation isolates its artifacts. A successful preflight need not be repeated on contact or wording updates unless the environment changes. Read the returned status and paths; never guess `workspace/resume.pdf` or treat a previous copy as this run's success. Full diagnostics remain in the returned manifest; open them only when needed. Fix a reported cause before retrying.
|
|
52
|
+
|
|
53
|
+
For existing edited HTML:
|
|
138
54
|
|
|
139
55
|
```bash
|
|
140
|
-
|
|
141
|
-
python3 scripts/rendering/render-pdf.py workspace/resume.html workspace/resume.pdf --quiet
|
|
56
|
+
python3 <skill-root>/scripts/rendering/render-pdf.py <edited-resume.html> <new-resume.pdf> --expected-pages 1 --quiet
|
|
142
57
|
```
|
|
143
58
|
|
|
144
|
-
|
|
59
|
+
## 4. Inspect and deliver
|
|
145
60
|
|
|
146
|
-
|
|
61
|
+
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. 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.
|
|
147
62
|
|
|
148
|
-
|
|
63
|
+
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. Preserve failures for diagnosis; do not delete run history as cosmetic cleanup. Font extraction failures require inspecting diagnostics and an available font choice, not altering candidate text.
|
|
149
64
|
|
|
150
|
-
|
|
151
|
-
### 🎯 Career Positioning & Value Proposition
|
|
152
|
-
> **[Candidate Name] · [Target Role Title]**
|
|
153
|
-
> *[15~25 words Core Value Proposition highlighting key strengths]*
|
|
65
|
+
Default 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.
|
|
154
66
|
|
|
155
|
-
|
|
67
|
+
Use one concise delivery shape across hosts, adapting only language and filenames:
|
|
156
68
|
|
|
157
|
-
|
|
158
|
-
1. **[Key Domain / Architecture]**: [Action Verb + Grounded Achievement + Metrics] *(Evidence: [Source])*
|
|
159
|
-
2. **[Core Tech Stack]**: [Engineered feature with exact frameworks] *(Evidence: [Source])*
|
|
160
|
-
3. **[Delivery & Impact]**: [System stability / CI-CD / Performance metric] *(Evidence: [Source])*
|
|
69
|
+
> 已生成简历: [PDF](<current PDF path>) · [可编辑 HTML](<current HTML path>)。模板:<templateUsed>。<One useful gap or actual inspection limitation, if any.>
|
|
161
70
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
### 📄 Final Verified Deliverables
|
|
165
|
-
- **PDF Resume (Deterministic A4)**: `workspace/resume.pdf` (Passed 100% Dual QA)
|
|
166
|
-
- **HTML Working Canvas**: `workspace/resume.html` (Design Tokens Calibrated)
|
|
167
|
-
- **Master Profile JSON**: `workspace/evidence-master.json` (Traceable Evidence底座)
|
|
168
|
-
```
|
|
71
|
+
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; keep previous runs internal. 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,18 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
description: An agent-native skill for self-discovery, career positioning, and tailored resume engineering.
|
|
3
|
-
globs: ["workspace/*", "src/**/*", "scripts/**/*", "references/*"]
|
|
4
|
-
---
|
|
1
|
+
# KnowMe CareerForge
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
> *"Know Yourself. Define Your Direction. Forge Your Opportunity."*
|
|
9
|
-
|
|
10
|
-
When activated, follow the 6-Stage Deterministic Workflow and Quiet Execution Protocol (see `AGENT.md` and `ARCHITECTURE.md`):
|
|
11
|
-
|
|
12
|
-
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` (see `references/01-evidence-mining.md`).
|
|
13
|
-
2. **Define Goal & Archetype**: Establish target seniority tier and capability matrix (see `references/02-career-goal.md`).
|
|
14
|
-
3. **Understand Target**: Analyze target JD via `python3 scripts/evidence/analyze-jd.py` (see `references/03-jd-analysis.md`).
|
|
15
|
-
4. **Template Search**: Match template via `python3 scripts/template/search-template.py` (see `references/04-template-selection.md`).
|
|
16
|
-
5. **Intermediate Canvas**: Instantiate `workspace/resume.html` via `python3 scripts/template/instantiate-resume.py` and calibrate CSS design tokens (see `references/05-html-canvas-tokens.md`).
|
|
17
|
-
6. **Review & Dual QA**: Run `python3 scripts/validation/validate-resume.py` and export `workspace/resume.pdf` via `python3 scripts/rendering/render-pdf.py` (see `references/06-qa-and-rendering.md`).
|
|
18
|
-
7. **Quiet Delivery**: Execute silently in background; deliver concise executive summary and final file path (`workspace/resume.pdf`).
|
|
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.
|