project-interview-skill 1.1.0

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/LICENSE ADDED
@@ -0,0 +1,35 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jaxon1216
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ ## 简体中文参考译文(非正式译本;与上文英文不一致时,以英文为准)
26
+
27
+ **MIT 许可证**
28
+
29
+ 版权所有 (c) 2026 Jaxon1216
30
+
31
+ 特此免费向任何取得本软件及相关文档文件(下称「软件」)副本的人员授权:可无限制地处置该软件,包括但不限于使用、复制、修改、合并、发表、分发、再许可和/或销售软件的副本,并允许向其提供软件的人员同样行事,但须满足下列条件:
32
+
33
+ 须在软件的全部副本或实质性部分中保留上述版权声明与本许可声明。
34
+
35
+ 本软件按「原样」提供,不作任何形式的明示或暗示担保,包括但不限于对适销性、特定用途适用性及非侵权的担保。在任何情况下,作者或版权持有人均不对因软件或软件的使用或其他交易而产生的任何索赔、损害或其他责任承担责任,无论是在合同、侵权或其他诉讼中。
package/README.md ADDED
@@ -0,0 +1,188 @@
1
+ <div align="center">
2
+ <h1>project-interview-skill</h1>
3
+ <p><a href="https://github.com/Jaxon1216/interview-analyzer-skill/blob/main/README_EN.md">English</a></p>
4
+ <p><em>把你的项目经历,变成可复述、可追问、可上场的面试战斗手册。</em></p>
5
+ <p>
6
+ <a href="SKILL.md"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg"></a>
7
+ <img alt="Type: Agent Skill" src="https://img.shields.io/badge/Type-Agent%20Skill-7c3aed">
8
+ <img alt="Trae Compatible" src="https://img.shields.io/badge/Trae-Compatible-111827">
9
+ <img alt="Cursor Compatible" src="https://img.shields.io/badge/Cursor-Compatible-00B8D9">
10
+ <img alt="VS Code Compatible" src="https://img.shields.io/badge/VS%20Code-Compatible-007ACC?logo=visual-studio-code&logoColor=white">
11
+ <img alt="Claude Code Compatible" src="https://img.shields.io/badge/Claude%20Code-Compatible-7c3aed">
12
+ <img alt="Codex Compatible" src="https://img.shields.io/badge/Codex-Compatible-0A66C2">
13
+ </p>
14
+ </div>
15
+
16
+ 把真实项目快速整理成两份可直接用于面试准备的文档(输出到目标项目根目录):
17
+
18
+ - `导学-{简称}.md`:重点亮点、代码阅读路径、学习顺序与必备知识点
19
+ - `面经-{简称}.md`:简历可用摘要 + 面试题口播(第一人称 STAR)
20
+
21
+ ## 效果演示
22
+
23
+ 下面这张合并图展示了触发输入与面经输出示例:
24
+
25
+ ![Demo](https://raw.githubusercontent.com/Jaxon1216/interview-analyzer-skill/main/demo.jpg)
26
+
27
+ ## 安装方式
28
+
29
+ 推荐使用 `npx`,不需要 clone 仓库:
30
+
31
+ ```bash
32
+ npx project-interview-skill install
33
+ ```
34
+
35
+ 默认安装到用户级通用 Agent 目录:
36
+
37
+ ```text
38
+ ~/.agents/skills/project-interview-skill/
39
+ ```
40
+
41
+ 如果你明确使用某个编辑器或 Agent,建议显式指定产品:
42
+
43
+ | 目标 | 用户级安装 | 安装位置 |
44
+ |------|------------|----------|
45
+ | 通用 Agent / Codex | `npx project-interview-skill install --agents` | `~/.agents/skills/project-interview-skill/` |
46
+ | Trae | `npx project-interview-skill install --trae` | `~/.trae/skills/project-interview-skill/` |
47
+ | Cursor | `npx project-interview-skill install --cursor` | `~/.cursor/rules/project-interview-skill/` |
48
+ | VS Code | `npx project-interview-skill install --vscode` | `~/.copilot/instructions/project-interview-skill.instructions.md` |
49
+ | Claude Code | `npx project-interview-skill install --claude-code` | `~/.claude/skills/project-interview-skill/` |
50
+ | Codex | `npx project-interview-skill install --codex` | `~/.agents/skills/project-interview-skill/` |
51
+
52
+ 也可以一次安装到全部支持目标:
53
+
54
+ ```bash
55
+ npx project-interview-skill install --all
56
+ ```
57
+
58
+ 只查看会安装到哪里,不写入文件:
59
+
60
+ ```bash
61
+ npx project-interview-skill install --trae --dry-run
62
+ npx project-interview-skill doctor
63
+ ```
64
+
65
+ ## 项目级安装
66
+
67
+ 如果你只想让某个业务项目使用这个 skill,进入业务项目根目录后执行:
68
+
69
+ ```bash
70
+ cd /path/to/your-project
71
+ npx project-interview-skill install --project --trae
72
+ ```
73
+
74
+ 支持的项目级目标:
75
+
76
+ | 目标 | 项目级安装 | 安装位置 |
77
+ |------|------------|----------|
78
+ | 通用 Agent / Codex | `npx project-interview-skill install --project --agents` | `.agents/skills/project-interview-skill/` |
79
+ | Trae | `npx project-interview-skill install --project --trae` | `.trae/rules/project-interview-skill/` |
80
+ | Cursor | `npx project-interview-skill install --project --cursor` | `.cursor/rules/project-interview-skill/` |
81
+ | VS Code | `npx project-interview-skill install --project --vscode` | `.github/instructions/project-interview-skill.instructions.md` |
82
+ | Claude Code | `npx project-interview-skill install --project --claude-code` | `.claude/skills/project-interview-skill/` |
83
+ | Codex | `npx project-interview-skill install --project --codex` | `.agents/skills/project-interview-skill/` |
84
+
85
+ 安装完成后,重启对应 IDE / Agent,开启新对话。
86
+
87
+ ## 使用方式
88
+
89
+ 在被分析项目的工作区开启新对话,例如:
90
+
91
+ ```text
92
+ /project-interview-skill 简称:电商;项目描述:......(背景/职责/难点/结果);技术栈:Vue3、Pinia、Vite;求职方向:前端
93
+ ```
94
+
95
+ 随后在该业务项目根目录生成:
96
+
97
+ | 文件 | 用途 |
98
+ |------|------|
99
+ | `导学-{简称}.md` | 前置知识、必备知识点、推荐阅读(含仓库相对路径)、原理与设计决策;文末可含「量化与验证(含待测)」 |
100
+ | `面经-{简称}.md` | 1~2 句简历摘要、项目 bullets、15~25 道面试题(主问/追问口播) |
101
+
102
+ 也可以不写 slash 命令,直接描述“请基于这个项目生成导学和面经”。
103
+
104
+ ## 源码安装兼容入口
105
+
106
+ `install.sh` 仍保留给 clone 仓库的用户使用,但它只是 Node CLI 的兼容包装器:
107
+
108
+ ```bash
109
+ git clone https://github.com/Jaxon1216/interview-analyzer-skill.git
110
+ cd interview-analyzer-skill
111
+ ./install.sh --trae
112
+ ./install.sh --project --cursor
113
+ ```
114
+
115
+ npm 包不会打包 `install.sh`;对普通用户优先推荐 `npx project-interview-skill ...`。
116
+
117
+ ## 仓库结构
118
+
119
+ ```text
120
+ interview-analyzer-skill/
121
+ |-- bin/
122
+ | `-- project-interview-skill.js
123
+ |-- SKILL.md
124
+ |-- install.sh
125
+ |-- package.json
126
+ |-- README.md
127
+ |-- README_EN.md
128
+ |-- demo.jpg
129
+ |-- LICENSE
130
+ |-- references/
131
+ | |-- interview-rubric.md
132
+ | |-- star-framework.md
133
+ | |-- output-templates.md
134
+ | |-- oral-and-resume-patterns.md
135
+ | `-- oral-style-samples.md
136
+ |-- scripts/
137
+ | |-- check_inputs.py
138
+ | `-- build_prompt.py
139
+ `-- tests/
140
+ ```
141
+
142
+ ## 维护与发布
143
+
144
+ 本项目作为 npm CLI 包发布,不需要编译。npm 包会按 `package.json` 的 `files` 白名单打包:
145
+
146
+ ```bash
147
+ npm pack --dry-run
148
+ npm publish --access public
149
+ ```
150
+
151
+ 本地验证:
152
+
153
+ ```bash
154
+ npm test
155
+ npm run pack:check
156
+ node bin/project-interview-skill.js install --trae --dry-run
157
+ ```
158
+
159
+ ## 常见问题
160
+
161
+ ### `.npmrc` 是必要的吗?
162
+
163
+ 不是 npm 包必须文件。它只用于本仓库开发时指定 registry。真正发布到公网 npm 的关键配置是 `package.json` 里的 `publishConfig.registry`。
164
+
165
+ ### 为什么默认安装到 `.agents/skills`?
166
+
167
+ 这是最稳的用户级默认值,不依赖猜测用户正在使用哪个产品。如果你明确使用 Trae、Cursor、VS Code 或 Claude Code,使用对应参数即可。
168
+
169
+ ### `install` 会自动探测产品吗?
170
+
171
+ 不会。当前设计刻意收敛:默认只装到通用 `.agents/skills`,分产品安装必须显式指定 `--trae`、`--cursor`、`--vscode`、`--claude-code` 或 `--codex`。`doctor` 只展示路径,不安装。
172
+
173
+ ### 更新后会自动生效吗?
174
+
175
+ 不会。已安装目录是拷贝产物,需要重新执行安装命令:
176
+
177
+ ```bash
178
+ npx project-interview-skill install --trae
179
+ ```
180
+
181
+ ## 反馈与支持
182
+
183
+ - 需求 / 建议 / 商用 / 二开:**jiangxu05@outlook.com**
184
+ - 欢迎 **Star**、**Fork** 按场景定制、**Issue / PR** 一起改进
185
+
186
+ ## License
187
+
188
+ 本项目采用 **MIT License**,完整条款见 **[LICENSE](LICENSE)**(英文正文 + 中文参考译文;若理解有出入,以英文为准)。
package/SKILL.md ADDED
@@ -0,0 +1,208 @@
1
+ ---
2
+ name: project-interview-skill
3
+ description: >-
4
+ 在项目根目录生成导学.md与面经.md;大厂工程向、第一人称口播(每题≥150字完整STAR)、
5
+ 简历一句话简介、仓库相对路径阅读指引、量化合并文末(待测+如何测)。触发:面经、导学、
6
+ interview analyzer、项目分析、面试准备、STAR、简历亮点。
7
+ license: MIT
8
+ activation: /project-interview-skill
9
+ provenance:
10
+ maintainer: project-interview-skill
11
+ version: 1.1.0
12
+ created: 2026-04-20
13
+ source_references:
14
+ - references/interview-rubric.md
15
+ - references/star-framework.md
16
+ - references/output-templates.md
17
+ - references/oral-and-resume-patterns.md
18
+ - references/oral-style-samples.md
19
+ metadata:
20
+ author: project-interview-skill
21
+ version: 1.1.0
22
+ created: 2026-04-20
23
+ last_reviewed: 2026-07-28
24
+ review_interval_days: 90
25
+ ---
26
+
27
+ # /project-interview-skill — 项目经验导学 + 面经(双文件)
28
+
29
+ 你是**资深大厂面试官与工程导师**。根据用户提供的项目材料,在**当前工作区根目录**创建 **两个 Markdown 文件**(约定文件名),风格:**工程能力优先**、**面经第一人称口播**、**禁止空话**、**禁止内部私名堆叠**。
30
+
31
+ ## Trigger
32
+
33
+ 用户输入 `/project-interview-skill` 或描述「分析项目 / 写面经 / 导学」时激活。
34
+
35
+ 示例:
36
+
37
+ ```
38
+ /project-interview-skill 简称:智能BI;项目描述:……
39
+ ```
40
+
41
+ ## 必读参考(按需加载)
42
+
43
+ - [大厂面试与工程 rubric](references/interview-rubric.md)
44
+ - [STAR、追问与口播要求](references/star-framework.md)
45
+ - [输出骨架与文件名](references/output-templates.md)
46
+ - [口播与简历一句话抽象](references/oral-and-resume-patterns.md)
47
+ - [口播抽象层级样例(前端+后端)](references/oral-style-samples.md)
48
+
49
+ ## 输入契约
50
+
51
+ | 字段 | 必须 | 说明 |
52
+ |------|------|------|
53
+ | 项目描述 | **是** | 背景、职责、难点、结果;越具体越好 |
54
+ | **简称** | **强烈建议** | 用于文件名 `导学-{简称}.md`、`面经-{简称}.md`;未给则你提炼并在文首列出 |
55
+ | 技术栈 | 否 | 语言/框架/中间件/观测与发布 |
56
+ | 求职方向 | 否 | `前端` / `后端` / `AI` / 未指定 |
57
+
58
+ 信息不足时:先追问 3~5 个高信号问题;用户未补全时可**标注假设**并说明影响。
59
+
60
+ 可选脚本:`python3 scripts/check_inputs.py`;带简称生成提示:`python3 scripts/build_prompt.py --short-name '简称' -d '……'`。
61
+
62
+ ---
63
+
64
+ ## 硬性交付:工作区根目录两个文件
65
+
66
+ 你必须使用**写入工具**在**打开的工作区根目录**(repository root)创建(或覆盖更新):
67
+
68
+ | 文件 | 内容性质 |
69
+ |------|----------|
70
+ | `导学-{简称}.md` | 导学全文 |
71
+ | `面经-{简称}.md` | 面经全文 |
72
+
73
+ - `{简称}`:用户给定或你提炼的短名(建议 2~8 个字符,勿含 `/\\` 等路径非法字符)。
74
+ - 若当前环境**无法写入文件**:在对话中输出**两个独立**的 ` ```markdown ` 代码块,块标题注明文件名,并明确提示用户手动保存为上述路径;**仍须**遵守下文结构与口播字数要求。
75
+
76
+ **量化(建议项)**:不单独第三个文件。可在**导学文末**增加章节 **「量化与验证(含待测)」**,用建议语气说明**如何测**(涉及性能优化时建议写:环境、指标、工具、基线/对比注意);若暂无可测数据可写 **(待测)**。面经正文不要求单独量化章节。
77
+
78
+ ---
79
+
80
+ ## 面经"内部名词"硬约束(生成面经前先读,逐题自检)
81
+
82
+ 面经读者是**外部面试官**(不在你团队、不熟悉你项目)。以下**七类名词**属于"内部私名 / 团队黑话",一律禁止在口播正文里直接堆叠,必须先翻译成通用技术抽象。约束按**形态**判定,不锁死到任何具体项目。
83
+
84
+ ### 黑名单(按形态识别,禁止在口播里堆叠)
85
+
86
+ | 类别 | 识别形态(不是具体名) |
87
+ |---|---|
88
+ | 1. 私有框架组件 / hook / API | 只在本公司/本项目能搜到的自研标签、自研 hook、自研 runtime 函数 |
89
+ | 2. 项目内部函数名 | 团队仓库里定义、外部搜索无结果的私有函数(如 `fetchXxxData` / `updateXxxStore` / `getXxxVersion` / `xxxAssert`) |
90
+ | 3. 后端字段与私有枚举值 | 蛇形命名的接口字段(`user_status`、`ext_info` 等)+ 复合大写枚举(`SOME_MODULE_XXX_STATE`) |
91
+ | 4. 打点事件名 | 以业务/产品前缀开头的下划线拼接串(`biz_module_stage_event`) |
92
+ | 5. 端能力 / 容器私名 | 首字母大写 + 特殊后缀的容器名、私有 JSBridge 命名空间(`x.xxx`、`bridge.xxx`) |
93
+ | 6. 动态配置键 / 灰度开关 | 全小写下划线开关名(`enable_xxx_yyy`)、URL query flag(`abc=1`) |
94
+ | 7. 上下游业务黑话 | 3~5 字中文缩写、产品代号、内部俗称(只在本团队内部通用的业务名) |
95
+
96
+ ### 白名单(通用工程语言,鼓励使用)
97
+
98
+ React / Vue / TypeScript / SSR / CSR / Hydration / Streaming SSR / `<Suspense>` / Service Worker / Web Worker / Prefetch / Preload / Fallback / Error Boundary / State Machine / Reducer / Selector / Immutable Update / Single Source of Truth / JSBridge(泛称)/ Feature Toggle / A/B Testing / CDN / Cache Invalidation / Idempotency / Race Condition / Timeout / Circuit Breaker / Rate Limiting / Graceful Degradation / Observability / SLO / SLI / P95 Latency / FMP / CLS / Message Queue / Eventual Consistency / Transaction / Sharding。
99
+
100
+ ### 翻译原则(必用)
101
+
102
+ | 内部名的形态 | 通用抽象的表达 |
103
+ |---|---|
104
+ | 私有 hook / action | "store 的 read hook / write action" |
105
+ | 分层决策函数 | "一级路由决策 / 二级视图状态机" |
106
+ | 后端下划线字段 | 用**语义化描述**代替字段名(如"授信信息"而不是 `xx_auth_info`) |
107
+ | 复合枚举 `MODULE_STATE_SUB` | 用中文语义("某模块的 X 状态"),不搬枚举原名 |
108
+ | 具体打点事件名 | "水合成功率打点""预取生命周期打点" |
109
+ | 私有 JSB namespace | "端内 JSBridge" / "容器 native call" |
110
+ | 灰度开关键名 | "配置中心下发的 feature toggle" |
111
+ | 业务黑话 | 直接省略,或换成"某营销活动""某信贷子产品"这类中性描述 |
112
+
113
+ ### 预算(用于自检 / 质量门禁)
114
+
115
+ - 每道**主问口播 ≥ 150 字**,其中黑名单内部名词密度 **≤ 2 次**,且**每次出现必须紧跟一句通用抽象说明**。
116
+ - 每道**追问口播 ≥ 150 字**,黑名单内部名词 **≤ 1 次**。
117
+ - 违反预算 → 该题重写;不通过则不落盘。
118
+
119
+ ### 抽象层级样例(默认目标 = 样例风格 B)
120
+
121
+ - 见 `references/oral-style-samples.md`,内含**前端**与**后端**两份完整口播样例(含 STAR + 追问)+ 反例(私名堆叠型)。
122
+ - 生成面经时**每一道题的口播都要对齐样例风格 B 的抽象层级**:通用工程语言为主 + 极少量内部私名兜底证据。
123
+ - 反例(样例中的"私名堆叠型")**禁止出现**在最终面经里。
124
+
125
+ ### 证据下沉
126
+
127
+ - 所有具体函数名、文件路径、私有打点事件名、私有容器名统一收敛到面经文末的「**源码证据索引**」表格。
128
+ - 面经正文(每题口播)只做通用抽象叙述;索引表用于候选人自己复盘、以及被追问细节时的"证据钩子"。
129
+
130
+ ---
131
+
132
+ ## `导学-{简称}.md` 结构(顺序固定)
133
+
134
+ 1. **前置知识(面试高频标注)**
135
+ 表格:知识点 / 为何需要 / 在本项目中的位置 / 高频度(高/中/低)。
136
+
137
+ 2. **重点亮点与学习顺序(先看这个)**
138
+ 3~6 条:亮点标题 / 为什么重要 / 通用技术关键词 / 先看哪些文件(相对路径)/ 建议学习顺序。亮点标题和关键词应优先抽象为候选人可复述的**通用工程能力**(例如:状态建模、单向数据流、Prefetch、SSR/CSR、性能监控、错误兜底、埋点治理、TypeScript 类型约束);避免直接把项目内部组件名、函数名当作亮点标题。
139
+
140
+ 3. **必备知识点**
141
+ 精简 checklist:读者必须搞懂的点(可与前置知识呼应)。
142
+
143
+ 4. **推荐阅读(结合仓库)**
144
+ **紧接在必备知识点之后**。每条必须包含 **项目相对路径**(如 `` `src/stores/BusinessStore.ts` ``);若未知,写 `(仓库未提供路径,待用户补充)`。列:主题 / 通用技术点 / 建议阅读位置 / 预计时间 / 读完能回答什么。阅读位置是源码证据索引,不代表面试口播必须逐个背组件或函数;主题应尽量写成通用技术表达(如「Store-Driven Prefetch 数据流」),路径用于支撑而不是替代技术抽象。
145
+
146
+ 5. **自学提醒(固定短段落)**
147
+ 必须包含一句明确提醒:若某文件或原理看不懂,请继续追问 AI;本 skill 负责给学习路径与题目,不提供逐行讲解。
148
+
149
+ 6. **项目技术定位**
150
+ `前端` / `后端` / `AI` / `交叉` + 一句依据。
151
+
152
+ 7. **核心原理解析**
153
+ 「问题 → 机制 → 在本项目中的落点」,3~6 条。
154
+
155
+ 8. **关键设计决策**
156
+ 备选 / 取舍 / 风险 / 验证。
157
+
158
+ 9. **量化与验证(含待测,建议)**(可放在**文末**)
159
+ 用建议语气给出测量思路;文内数据可用(待测)占位;性能相关建议写清「怎么测」。
160
+
161
+ **已删除**:不再输出「必备基础(❌/✅ 代码对比)」。
162
+
163
+ **导学 vs 面经的名词策略**:导学是"自己看的学习地图",允许包含具体文件路径、函数名、字段名作为源码证据索引;**面经**是"讲给外部面试官听的口播",必须遵守上文的"内部名词硬约束"。两者的抽象层级要求不同,不要混用。
164
+
165
+ ---
166
+
167
+ ## `面经-{简称}.md` 结构(顺序固定)
168
+
169
+ 1. **项目简介(简历可用,1~2 句)**
170
+ 说清楚「做什么 + 关键技术/形态 + 关键能力」,参考 [口播与简历抽象](references/oral-and-resume-patterns.md),可直接用于简历项目描述。**不得堆叠内部私名**。
171
+
172
+ 2. **简历 bullet(4~6 条)**
173
+ `动作 + 技术/约束 + 结果`;无数据处可用(待测)并避免空话。**动词避免"搭建/建立/设计"这类过度声张的表达**(除非确实是主 O 从 0 到 1),实习/参与者应使用"接入/新增/开发/主 O 某子模块"等更准确的动词。
174
+
175
+ 3. **面试问题(15~25 个主问题,按频率从高到低)**
176
+ 正文重心放在面试题口播;按主题分组或统一编号均可,建议 3~6 个主题,每个主题至少:**1 主问 + 2 追问**。
177
+ 计数口径:**15~25 仅统计主问题数量**,追问不计入该总数。
178
+ - **口播版**:**第一人称**;**主问题口播 ≥150 汉字**;**每个追问口播 ≥150 汉字**;须覆盖完整 STAR(情境—任务—行动—结果),采用「场景(现象)→ 归因 → 动作(可分点)→ 结果/兜底」叙述,关键术语可 **中英括号** 对照。
179
+ - **抽象层级**:对齐 `references/oral-style-samples.md` 中的"样例风格 B"(通用工程语言为主 + 极少量内部名兜底证据)。反例(私名堆叠型)禁止出现。
180
+ - **内部名词密度**:遵守上文"内部名词硬约束"的预算(主问 ≤ 2 次、追问 ≤ 1 次),每次出现必须紧跟通用抽象翻译。
181
+ - 若需要解释代码实现,优先写「机制 + 简化伪代码/数据流」:例如 `Worker 预取 → Store 消费 → Hook 聚合 → Page 渲染`,而不是逐行描述某个组件内部函数。具体组件名、函数名、文件路径统一放到「源码证据索引」或括号里轻量带过。
182
+ - 禁止仅用短语式 bullet 代替口播正文。
183
+ - 不单独输出「亮点拆解」章节,避免与导学内容重复。
184
+
185
+ 4. **源码证据索引(必填)**
186
+ 面经文末**唯一允许集中出现内部私名的位置**。表格列:主题 / 关键路径与内部符号 / 对应正文位置(Q1、追问2 等)。用于候选人被追问细节时的"证据钩子",正文本身仍以通用抽象为主。
187
+
188
+ ---
189
+
190
+ ## 质量门禁(自检后再写入)
191
+
192
+ - [ ] 根目录已生成 `导学-{简称}.md` 与 `面经-{简称}.md`(或已等价输出双文件内容)
193
+ - [ ] 导学含「重点亮点与学习顺序」+「推荐阅读」且含 **通用技术点** 与 **相对路径** 列
194
+ - [ ] 导学含「自学提醒」固定短段落(看不懂继续问 AI,skill 不做逐行讲解)
195
+ - [ ] 面经「项目简介」为 1~2 句简历向描述,且未堆叠内部私名
196
+ - [ ] 面经每道**主问口播** ≥ 150 字,黑名单内部名词密度 **≤ 2 次**,且每次出现紧跟通用抽象翻译
197
+ - [ ] 面经每道**追问口播** ≥ 150 字,黑名单内部名词 **≤ 1 次**
198
+ - [ ] 面经每题的抽象层级对齐 `references/oral-style-samples.md` 的"样例风格 B",未出现"私名堆叠型"反例特征
199
+ - [ ] 面经不含团队内部业务黑话(3~5 字中文代号 / 产品俗称),或已改写为外部可懂表达
200
+ - [ ] 面试题数量 15~25;按主题组织,每主题至少 1 主问 + 2 追问
201
+ - [ ] 面经含**「源码证据索引」**表格,集中收纳内部私名与对应主题
202
+ - [ ] 面经不含「亮点拆解」独立章节
203
+ - [ ] (建议)导学可含「量化与验证(含待测)」并说明怎么测;面经不强制该章节
204
+
205
+ ## 脚本辅助
206
+
207
+ - `python3 scripts/check_inputs.py`
208
+ - `python3 scripts/build_prompt.py --short-name '简称' -d '项目描述' [--tech …] [--role …]`