Skip to content

Releases: EXIST-D/Interview-bank

v1.16.1

Choose a tag to compare

@EXIST-D EXIST-D released this 10 Oct 02:34

Added

  • A link to the project on GitHub in the Web reader: an icon at the top of the sidebar, a link at the foot of the
    sidebar and in the phone menu, and one under the login card of a hosted reader.

v1.16.0

Choose a tag to compare

@EXIST-D EXIST-D released this 09 Oct 05:54

A 八股 notes section beside the bank's own questions. Data stays V1/V2; no migration is needed.

Added

  • notes import|list|search|show|remove: import a folder of Markdown study notes as a collection (one file per chapter,
    ## headings as questions, ### under a grouping ##, 🔴/⭐ as key marks, long chapter openings as 导读 notes).
    Answers are kept verbatim with their source; notes never become occurrences. Re-imports keep the IDs of unchanged
    headings. Stored in collections/<name>.json.
  • notes link-candidates and notes link: the agent judges which notes answer or cover each interview question
    (answers / covers); links live in collections/links.jsonl, and judged questions without links are remembered
    for --unlinked.
  • Web reader: a 面经 / 八股 switch; collections and chapters (chips on a phone, the sidebar on wide screens); key-only,
    asked-only and most-asked views; Markdown answers with lists, tables, quotes and code; the source under every
    answer; "相关八股" under a question and "面经里这样问" under a note, jumping both ways. API: /api/notes, /api/note.
  • Web reading aids, on a phone and a computer: chapter headers in the notes list that fold (全部折叠 / 全部展开, a table
    of contents on a phone) and count what was read; a peek at each answer from the list; read marks; 随机一题 (unread
    first); search words highlighted in titles; text size (Aa) and a reading progress bar in the reader; foldable
    sidebar sections; a light / dark / system theme choice; a back-to-top button. Read marks, folds, theme and text size
    stay in the browser.
  • Wide screens: the navigation and the list fold away (« / », 收起列表 or L, 专注 or F for both, Esc to leave), so the
    reader can fill the window at a comfortable line length; the choice is remembered on the device.
  • references/notes.md.

Changed

  • Backups and tools/deploy/sync.sh include collections/.
  • README: the Web reader section rewritten (two sections, reading aids, shortcuts, and three ways to use it: locally,
    on your own server, or testing with the author); new screenshots from the demo bank, including the notes section.

v1.15.0

Choose a tag to compare

@EXIST-D EXIST-D released this 08 Oct 09:24

Optional reading on a phone through the user's own server. Data stays V1/V2; no migration is needed.

Added

  • web --token-file <file> --public-origin https://<site>: the reader still binds to loopback, takes a fixed token from a
    root-readable file (never printed to logs) and accepts the public site's Origin, for use behind an HTTPS reverse proxy
    that asks for a login and adds the token.
  • web --login-file: a login page for the hosted reader (one account, scrypt hash, signed HttpOnly/Secure/SameSite=Strict
    session cookie for 14 days, sign-out button, lockout after repeated failures; a new password signs every device out).
  • web --banks-dir <dir>: several people on one server, each account reading only its own bank; login files hold
    several accounts (format 2; the single-account format still loads).
  • Reading-first Web design: phone list and full-screen reader with previous/next, swipe and back gesture; three columns
    on wide screens (sidebar with overview, study views, topics and tools, inline filters, reader); key points with
    their sources; optional think-first mode; placeholders that explain how to import, answer and export via the agent.
  • tools/deploy/: a hardened systemd unit (unprivileged user, read-only filesystem except the bank, starts only once a
    login exists), nginx snippets that add the token and client address and rate-limit logins, set-login.py (accounts:
    add, passwd, remove, list; passwords typed on the server), sync.sh (a bank's data, config and manifest to one
    account) and backup.sh with a daily systemd timer (14 verified backups per bank).
  • web.md: “Reading on your own server”.

Changed

  • The Web page loads its assets and calls its API by relative paths, so it also works under a path such as /ibank/;
    the brand link stays inside the reader, and a read-only notice takes precedence over the V1 notice.

v1.14.0

Choose a tag to compare

@EXIST-D EXIST-D released this 08 Oct 07:26

Fixes from the first real-environment evaluation: the Skill installed in Claude Code, screenshots organised end to end
by fresh Opus and Sonnet agents that read only the Skill, blind dedupe and answer suites, and the trigger suite in real
claude -p sessions. Data stays V1/V2; no migration is needed.

Evaluation results: dedupe retrieval recall@10 1.00; blind dedupe judgments 0 % false merges and 3.4 % missed merges
(Opus, Sonnet); blind answers 1.7 / 2 from a separate judge with no unsupported claims; triggers pass with Sonnet
(recall 1.00), while Haiku's recall (0.73–0.80) stays below the gate. See evals/README.md.

Added

  • Dedupe review sheet: every dedupe task writes review-sheet.md, incoming questions grouped by report topic with their
    candidates and the bank's existing questions of the same topic, so paraphrases with no shared wording are compared.
  • Short refs (n1… incoming, e1… existing) accepted in decisions; default_action: "KEEP_DISTINCT" covers unlisted
    questions; ingest submit --top-k; dedupe --decisions (alias of --input).
  • --defer-review on ingest finalize and dedupe: REVIEW items no longer block the whole stage; they stay separate
    questions and wait for the user in the Web reader (合并裁决). dedupe --resolve applies decisions on a committed run's
    deferred items as a new stage; undecided items stay queued.
  • page-text <url>…: saves the readable text of cited pages under cache/pages/ and returns a file for
    answer --page-texts, for hosts whose web tool returns summaries (the second command that goes online); pages that
    redirected elsewhere are flagged.
  • Extraction rules for phone screenshots: overlapping scrolls, questions cut across images, very tall images, the same
    interview posted twice, abbreviations as company evidence and platform evidence.
  • Dedupe judgment table (generic vs implementation, definition vs countermeasure, supersets, languages, project questions,
    follow-ups vs siblings) with examples that are not in the evaluation set.
  • Role track ai-agent.application (AI 应用开发); technologies agent-skills, claude-code, codex, cursor,
    github-copilot, ragas (catalog 1.2.0).
  • Rule for “the N most frequent” when place N is tied.
  • tools/run_trigger_eval.py --max-turns; run directories record the Skill version.

Changed

  • A merge or related target may be any active question of the bank or stage, not only a retrieved candidate; such
    targets are audited as outside_candidates, and unknown targets fail with the ID named. Committed questions can be
    linked or merged later with dedupe-candidates --question.
  • dedupe-candidates returns the same compact shape as ingest submit (counts, review sheet path, a 15-item preview with
    refs and scores), not the task file; run-show pages the full task. Output trimming also reaches lists nested one
    level down, so a 400-question ingest submit no longer prints 456 KB.
  • Dedupe tasks store only ID and wording for candidates (a 400-question import wrote 4.5 MB of task files).
  • Candidate ranking keeps the real score for same-topic questions instead of flooring them to one value, so the top-k
    cut among them is no longer arbitrary.
  • ingest finalize --task refuses a decisions file that names another task.
  • Report topics are ordered by question count.
  • SKILL.md description lists more Chinese trigger phrases and excludes self-introductions, salary negotiation and
    post-interview emails. Rarely needed detail moved out of the end-to-end reading set (export formats, answer recheck,
    merge audit), which stays under 30K characters.
  • The Python version error explains how to find a newer interpreter.

Fixed

  • tools/run_trigger_eval.py counted API errors (for example an unresolvable model alias) as “not triggered” and aborted
    on harmless CLI warnings; it now judges each case by the session's own result events.

v1.13.0:Skill 重写、评测体系、人工把关与复合命令

Choose a tag to compare

@EXIST-D EXIST-D released this 02 Oct 15:17

本版本完成改进方案的阶段 3 和阶段 4:重写 Skill 文本并建立评测,把“只有人能做的动作”变成结构约束,加入复合命令、新素材入口、学习闭环和 Web 升级。题库数据格式不变(V1/V2),无需迁移。

新增

  • 复合命令:ingest images → ingest submit → ingest finalize 三步完成截图入库(原 6 步);answer --commit;工作流、专题、练习、面试的 --commit;interview turn / interview review 让每道模拟面试题从 6 次调用降到 2 次。
  • 人工把关:answer-review --status reviewed 只能在交互终端亲自确认,Agent 无法代办;本地 Web 新增“人工审阅”按钮;CLI 记录的练习自评必须附用户原话(user_quote),保护规则同样保存原话;面试作答记录 captured_via,云端转写授权记录 granted_via。
  • 合并裁决:不确定的合并在 Web 中由用户判断,dedupe --resolve <run> 按用户裁决重新暂存后提交。
  • 可核查的引用:引用可附 evidence_quote,配合 answer --page-texts 校验原文确实出现在页面中;verify-citations 按需检查链接(唯一联网命令,拒绝内网地址,不改数据)。
  • 评测体系 evals/:80 条触发用例、17 个截图模板的金标、121 + 24(留出)对去重样本、10 个答案用例、打分脚本与发布门槛、评测记录和宿主验证记录;去重召回在 CI 中检查。
  • 新素材:web-intake 导入网页正文并按段落溯源(CLI 本身不抓取);B 站字幕 JSON;YouTube 滚动字幕自动合并并保留原始 cue 编号。
  • 学习闭环:export --format anki;可选 FSRS 复习算法;题目可关联原题链接;studyset plan 生成每日计划 .ics 日历。
  • 上手与界面:demo 生成示例题库(20 题,8 题附有核对过官方文档的答案);报告和 Web 支持英文;Web 暗色模式、练习刷新后可继续、支持 localhost、#question= 直达某题。

变更

  • SKILL.md 从 1.95 万字符精简到约 6,900 字符(8 条核心规则 + 路由表),端到端必读文档合计 2.94 万字符;references 去重、按 200 字符换行、去掉版本历史描述;测试会自动检查这些上限,以及路由表中的命令确实存在。
  • 去重候选检索去除问句套话并映射常见英文术语:recall@10 从 0.948 提升到 1.00(改动后编写的留出集从 0.917 到 1.00)。
  • app.js 重写为分段的可读代码,app.css 恢复为可读格式;CI 新增 ruff 检查。

验证

  • 287 项测试在 Windows / macOS / Linux × Python 3.10–3.13 上通过,并以旧快照格式再跑一遍;安装包检查新增 demo 与备份。
  • 在浏览器中用示例题库实测:合并裁决 → resolve → 提交、人工审阅、暗色模式、英文界面、练习续做、localhost 访问。
  • 尚未完成:触发评测未在真实宿主会话中运行;去重判定与答案评测尚无盲测记录。

v1.12.0:增量快照、独立备份与读写锁

Choose a tag to compare

@EXIST-D EXIST-D released this 02 Oct 13:47

本版本完成改进方案的阶段 2(存储与输出):写操作改为增量快照,新增独立备份与恢复,查询不再依赖 SQLite,只读命令可以并行。题库数据格式不变(V1/V2),旧题库无需迁移;1.11 及更早写下的运行记录仍可读取和撤销。

新增

  • 增量快照(run format 2):写操作只保存变化的记录(changes.jsonl),提交和撤销都按变更重放并校验指纹;无法精确表达时自动退回全量快照。1,000 题题库上一批 10 条答案让 runs/ 增长从约 1.9 MB 降到约 17 KB。INTERVIEW_BANK_RUN_FORMAT=1 可强制使用旧格式,CI 会用两种格式各跑一遍全部测试。
  • 独立备份:backup create [--include-runs] / verify / restore --destination <新目录>,带哈希清单和 .sha256 校验;恢复只写入尚不存在的新目录,校验通过后才落位。
  • answer-recheck:题目只改了措辞时,沿用原答案和来源、不刷新核验日期,记录复核依据;search 和 research 给出 answer_stale_reason(marked_stale / evidence_age / wording_changed)。
  • 读写锁:search、show、stats、export、doctor、validate 和 Web 页面共享锁,可以同时运行;写操作仍互斥(Windows 使用 LockFileEx)。
  • 错误信息:JSON 错误增加稳定的 error_type 和下一步 hint。

变更

  • search 默认返回题目卡片,每页 20 条并带 next_offset;--detail 返回完整记录。
  • 查询直接读取已加载的 JSONL;init 和 commit 不再生成 cache/bank.sqlite,rebuild-index 保留为弃用的空操作,gc 会删除遗留的缓存文件。
  • 提交时只重写发生变化的数据文件。
  • 截图或音视频提取的候选题中出现联系方式时,改为审阅项(示例邮箱可用 pii_reviewed + pii_reason 保留),不再让整批失败;其他入口仍直接拒绝,并说明命中的类别、值做脱敏。

验证

  • 228 项测试,在 Windows / macOS / Linux × Python 3.10–3.13 上通过,另外以旧快照格式跑一遍全部测试;安装包检查新增备份与恢复。
  • 在一个 425 题真实题库的副本上:一次 curate 只产生 3.4 KB 的增量记录,撤销后数据逐字节还原;备份、恢复、导出和校验均通过。

v1.11.0 · 测试与 CI 公开、输出上限与快照清理

Choose a tag to compare

@EXIST-D EXIST-D released this 02 Oct 12:24

本版本聚焦工程可信度与 Agent 使用成本:测试与 CI 公开,修复 1.10.0 评审发现的问题与 CI 新暴露的问题,输出有上限,旧运行快照可以清理。题库数据格式不变(V1/V2),旧题库无需迁移即可使用。

新增

  • 公开测试与 CI:196 项标准库测试、合成夹具和发布工具进入仓库;CI 在 Windows、macOS、Linux × Python 3.10–3.13 上运行,并以只读方式安装打包后的 Skill,检查 CLI、音视频、宿主适配和 Web。
  • 输出有上限:--json 默认紧凑,单条结果不超过 32 KB(INTERVIEW_BANK_MAX_OUTPUT)。超出时完整结果保存在题库的 cache/outputs/,stdout 返回 _page 分页信息;任务条目用 run-show --offset/--limit 继续读取。1,000 题题库上,classify 从 1.4 MB、dedupe-candidates 从 8.9 MB 降到 32 KB 以内。
  • gc 清理:默认只预览,加 --apply 才执行;压缩旧运行快照,保留审计记录、提交回执、最近的撤销点和全部 intake。一个 289 题的真实题库副本,runs/ 从 53.9 MB 降到 10.8 MB。
  • 答案展示:写了口述版、常见追问、易错点时,会在答案版报告中折叠展示(--answer-extras folded|inline|none),Web 阅读区也会显示。

变更

  • 答案只要求简答、要点和来源,其余字段可选。
  • 命令遇到题库被占用时,最多等待 10 秒(INTERVIEW_BANK_LOCK_TIMEOUT),不再立即失败。
  • V2 迁移:答案写完后题目没有被修改的,保留已核验状态;只有改过的题目才需要复核。迁移结果会报告 answers_bound 和 answers_need_recheck。
  • SKILL.md 加入中文触发词、研究超过 20 题前的预算确认、快速/完整两种路径和路由表;README 补充 Claude Code、Codex、Cursor、Trae、Qwen Code、Gemini CLI 的安装方式。

修复

  • Web 并发请求、Web 与 CLI 同时使用时互相 409;Web 保存自评可能留下未提交的 stage,并阻塞之后的迁移。
  • 练习题数缺少“10 题”选项。
  • 报告分组只识别 8 个顶级领域,移动、数据、安全等题都落入“其他知识题”。
  • 隐私检查:stage --text 不检查;“微信:……”开头的题目和示例邮箱被误拦;随机生成的 ID 偶尔被当成手机号(约 1/700)。
  • UTC+8 凌晨填写的引用阅读日期被判为未来;Python 3.10 不接受以 Z 结尾的时间;CLI 现在会拒绝 Python 3.10 以下的版本。
  • 部分环境下 Web 启动因反向 DNS 查询卡住数十秒;缺少 faster-whisper 包元数据时所有文件转写失败。

升级

更新已安装的 Skill 即可,例如:

npx skills add EXIST-D/Interview-bank --skill interview-bank -a <agent>

也可以下载附件 interview-bank-1.11.0.zip,解压到 Agent 的 skills 目录。题库仍放在 Skill 目录之外。完整记录见 CHANGELOG。


1.11.0 publishes the test suite and CI, fixes the defects found in a review of 1.10.0 and by the new CI, bounds --json output to 32 KB with lossless paging, adds gc to compact old run snapshots while keeping audit and undo, makes most answer fields optional and shows written practice depth, and keeps verified answers of unchanged questions during V2 migration. Bank data formats are unchanged. See the CHANGELOG.

v1.10.0 · 本地 Web 题库与练习

Choose a tag to compare

@EXIST-D EXIST-D released this 28 Sep 06:55

新增可选本地 Web 题库查阅与自评练习,保留原有 Agent 整理工作流。

  • 浅色简洁界面:搜索、六维分类筛选、排序分页,以及全部题目/待复习/待巩固/尚未练习视图。
  • 阅读题干、参考答案、可信来源链接、原始问法与练习记录;缺失、草稿和待重新核验答案保持明确标记。
  • 按筛选范围或单题练习,先作答后揭示答案,提交用户自评后安排复习日期。V2 通过现有事务保存作答与自评;V1 和只读模式支持临时练习。
  • 使用 Python 标准库和随 Skill 安装的页面资源,无需 npm、外部网页资源或模型服务;仅监听本机。
  • 更新中英文 README,加入用户提供的实际界面截图、启动方法、已实现功能和后续计划。

本地 Web 题库示例

可以直接告诉 Agent:

请用 interview-bank 打开我指定题库的本地 Web 界面,让我浏览题目和练习。

或替换实际路径后运行:

python -B <Skill目录>/scripts/ibank.py web --bank <已有题库目录> --open

本版通过 159 项自动化测试及独立安装包检查,并在真实题库的隔离副本上验证浏览、筛选、作答自评、保存与重启回查。Windows 环境完成实际验证,未宣称所有宿主与系统均已实测。

练习使用用户自评,不自动 AI 判分;已提交 V2 记录可持久保存,未提交作答和本轮位置不跨页面重载恢复。Web 编辑、合并复核和素材导入仍属后续计划。更新 Skill 不会自动迁移或修改个人题库。截图用于说明,安装不附带演示题库。

使用协议:本地 Web 说明。

v1.9.0 · 音视频输入与跨宿主适配

Choose a tag to compare

@EXIST-D EXIST-D released this 09 Sep 14:37

本次 v1.9.0 一并发布 1.8 音视频输入与 1.9 宿主适配,继续保留截图整理、来源答案、JD 专题和模拟面试。

新增功能

  • 音视频与转写稿:可选本地 faster-whisper 转写录音和视频音轨;支持 SRT/VTT/TXT/JSON、字幕附着、分页阅读、原文校订和时间戳追溯。
  • 恢复与增量整理:逐文件保存转写进度,错误文件不阻止其他文件;相同原文件重复导入跳过,转写接入既有分类、去重、答案研究与双报告。
  • 环境与宿主适配:检测 Python、目录写入和转写依赖;区分实际环境检测与宿主工具声明,未知能力保持未知。
  • 转写路线规划:优先复用已保存转写和同名字幕,再选择可用宿主工具或本地模型;多份或无效字幕进入核对。
  • 统一宿主结果接入:归一化 segments/chunks/text,绑定文件摘要、工具和服务,支持幂等重试。云端工具由宿主实际调用,需已有授权覆盖服务、文件、费用与数据去向;Python 引擎本身不上传媒体。

升级与使用条件

更新安装的 interview-bank Skill 即可获得新功能,个人题库仍放在 Skill 目录之外。已有 V1/V2 题库可由新版读取;加入音视频字段后应继续使用 1.8+,旧版严格校验器不认识新增字段。首次对已有库导入媒体前保留备份。V2 专题和复习功能仍需显式备份迁移。

核心需要 Python 3.10+,字幕/转写稿解析仅使用标准库;原始音视频转写依赖可选 faster-whisper 1.2.1 和模型权重,需在授权工作目录单独配置。宿主必须能读文件和执行 Python;核验参考答案还需搜索与实际读取资料的能力。

验证与边界

  • 146 项自动化测试通过;独立安装包完成旧流程、媒体和宿主协议检查,运行后 Skill 安装目录保持不变。
  • 已在 Windows 实际完成合成中英文录音和视频音轨的本地转写;字幕复用样例完成两题入库、有效答案复用及双报告。
  • 宿主/cloud 接入通过协议测试,未实际调用云服务;没有声称所有 Agent、操作系统或 CUDA 均已实测。
  • 视频当前覆盖语音,无声画面题目仍需截图提取。自动说话人分离、独立 Web 管理、社交平台自动抓取尚未实现。

公开内容仅包含 Skill、中英文说明与许可证,不包含个人素材、题库、模型、开发测试或私有 docs。


This release combines optional local audio/video speech transcription and supplied transcripts (1.8) with environment probes, route planning, and source-bound host tool result import (1.9). Existing screenshot, sourced-answer, JD and practice workflows are retained.

Validation: 146 automated tests plus independent package/readonly-install checks. Live ASR testing covers synthetic recordings on Windows; host/cloud integration is contract-tested, not a claim of universal platform support. Video coverage is spoken audio only. Python 3.10+ is required; faster-whisper and model weights are optional workspace dependencies. No private bank, recordings, models or development documents are published.

v1.7.0 · 持续维护、JD 备考与模拟面试

Choose a tag to compare

@EXIST-D EXIST-D released this 08 Sep 02:00

Interview Bank 1.7.0:持续维护、JD 备考与模拟面试

本版本汇总已完成的 1.5—1.7 三个阶段,保留 M1—M5 的截图提取、语义分类、同义合并、来源核验参考答案与双报告流程。

1.5 · 持续维护

  • 选定题库的 V2 迁移计划、带文件哈希验证的备份、升级与恢复。
  • 用户题干和分类字段保护、禁止合并规则,保留题目、来源和答案历史。
  • 冻结研究范围,逐题记录状态;分批保存、继续、阻塞原因与提交对账。
  • 题干修订后核对答案适用性;共享来源记录,按题数、任务批数或截止时间控制研究。

1.6 · 岗位/JD 备考专题

  • 将自然语言条件整理为可执行的 AND/OR/NOT 筛选,保留来源条件的一致语义。
  • 保存快照和动态专题;显式刷新并保留选择修订历史。
  • 保留 JD 要求原文、优先级及匹配理由,区分直接、部分、不确定覆盖与缺口。
  • 从同一选择生成参考答案版和纯题目版;题库知识覆盖不代表个人胜任能力或面试命中率。

1.7 · 复习与模拟面试

  • 保存用户真实自评、复习日期与按需生成的队列。
  • 每次提问一道,保存真实作答,提供有依据的参考反馈与追问。
  • 支持结束总结、中断恢复和重复请求去重。

更新与兼容

更新或重新安装 skills/interview-bank 即可取得本体更新。现有 V1 题库继续支持 M1—M5;使用保存专题、持久研究工作流及复习状态前,需要先按 Skill 维护协议检查迁移计划,执行带校验备份的 V2 升级。安装更新不会自动迁移题库,旧答案也不会被自动标为重新核验。

Agent 负责看图、语义判断、公开资料搜索与反馈;Python CLI 负责校验、事务、状态及报告。核心使用 Python 3.10+ 标准库。复习队列按需计算;当前没有后台通知、音视频自动转写、社交平台自动抓取或本地 Web 管理界面。

验证与发布范围

  • 124 项自动化测试通过。
  • 独立解压安装包验证旧流程及 1.5—1.7 CLI,安装目录保持只读。
  • 完成真实截图增量、答案来源研究、同义合并与重复导入校验。
  • 公开文件仅为 Skill、中英文 README 和 MIT 许可证;个人截图、题库、研究记录、开发计划、测试工程与本地环境均不发布。

答案标注“参考”,来源核验与人工审阅分开。上述验证覆盖具体流程,不是对任意截图识别或答案事实准确率的保证。

维护者:EXIST-D · 许可证:MIT