RoleFit AI 与 Typeset:共享文档引擎的简历工作台与编辑器
xinyiklin/rolefit-ai
RoleFit AI 仓库是一个 npm-workspaces monorepo,包含浏览器优先的本地简历与求职信工作台 RoleFit AI、其桌面伴侣与下载页,以及独立编辑器 Typeset。
The RoleFit AI repository is an npm-workspaces monorepo containing the browser-primary local application-materials workbench, its desktop companion and public download page, and the standalone Typeset resume editor. Both products share one deterministic document engine and one reusable editing surface.
@typeset/engine -> @typeset/editor -> Typeset
-> RoleFit AI
| Workspace | Responsibility |
|---|---|
apps/role-fit-ai |
RoleFit AI: the companion-launched, browser-primary local resume and cover-letter workbench with a loopback server, portable workspace backup, tracker, paired browser extension, and five-provider manager. Product site and downloads |
apps/typeset |
Typeset: the standalone browser-only editor at typeset.xinyiklin.com. |
packages/engine |
@typeset/engine: resume and constrained cover-letter document models, strict .resume and .cover codecs, fonts, deterministic layout, DOM/print rendering, and PDF emission. |
packages/editor |
@typeset/editor: direct editing, history/style hooks, document toolbar/popovers, and shared editor styles. |
The packages are private workspace source packages, not independently published libraries. Apps compose them and own their own product identity, lifecycle, and host-specific workflows; apps never import from each other.
Start here
npm install npm run dev:rolefit # http://localhost:5181 npm run dev:rolefit:desktop # supported local companion flow npm run dev:rolefit:landing # public product/download page npm run dev:typeset # http://localhost:5186 npm run check # every workspace's type/build/eval gate
Requires Node 24.18 or newer in the Node 24 line. .node-version pins
Node 24.18.0, matching CI and Docker, and the workspace pins npm 11.16.0. The
desktop companion runs on Electron's bundled Node instead.
Focused commands:
npm run build:typeset npm run build:rolefit npm run build:rolefit:landing # isolated public product/download bundle npm run build:rolefit:desktop # compile the companion npm run test:rolefit:desktop # explicit companion integration smoke npm run make:rolefit:desktop # native, non-publicly-trusted test artifacts (Node 24) npm run test:rolefit:desktop:packaged npm run test:editor:browser npm run test:editor:browser -- --suite=core # focused behavior/representative wrapping npm run test:ci # browser harness and CI routing contracts npm run test:document-workflows --workspace apps/role-fit-ai npm run deps:check npm run check --workspace packages/engine npm run check --workspace packages/editor npm run check --workspace apps/typeset npm run check --workspace apps/role-fit-ai
There is intentionally no ambiguous root dev, build, or preview script.
Use the named root command or an explicit workspace command.
Documentation
- Architecture and ownership
- Development and verification
- Git workflow
- RoleFit AI product docs
- RoleFit AI product contract
- RoleFit AI design contract
- Typeset product docs
- Agent guidance
Deployment
.github/workflows/deploy-pages.ymlpublishes the isolated RoleFit product and download page. It does not bundle the Drafting Desk or call localhost; the installed companion starts the full browser workspace on loopback..github/workflows/release-rolefit-desktop.ymlvalidatesrolefit-vX.Y.Ztags and builds signed macOS arm64/x64 plus Windows x64 companion artifacts on matching native runners. GitHub Releases is the binary source of truth; signing environments fail closed, and no auto-update channel exists yet..github/workflows/release-rolefit-desktop-preview.ymlvalidatesrolefit-preview-vX.Y.Z-beta.Ntags and publishes a clearly labeled unsigned GitHub prerelease after the same native packaging, smoke, installer, artifact, checksum, and atomic-publication gates. It never receives signing secrets..github/workflows/document-workflows.ymlowns package/app correctness and non-overlapping core/extended browser contracts. See the verification guide..github/workflows/deploy-typeset.ymlbuilds and HTTP-probes the digest-pinnedapps/typeset/Dockerfilebefore the configured EC2 deployment. The public Typeset runtime is static Nginx content.
License
MIT © 2026 Xinyi Lin
来源:GitHub · github.com