EPIC: bring Hermuz onto the house toolchain baseline
- 主要语言
- TypeScript
- 星标
- 0
- 派生
- 0
- 平均合并
- 6 分钟
- 30 天内合并 PR
- 1
描述
Tracking issue. `Hermuz` has drifted behind the toolchain the other personal monorepos converged on — it is not a deliberate variant, just an earlier generation.
## Where it stands
| | Hermuz | house standard |
|---|---|---|
| Workspace layout | `packages/*` + `apps/*` ✅ | same |
| Runtime / PM | Bun ✅ | same |
| Lint | ESLint 9 (`config/eslint.js`) | Biome |
| Format | Prettier | Biome (same tool) |
| Git hooks | none | Lefthook |
| Dead code | none | knip |
| Version catalog | none | Bun `catalog:` |
| TypeScript | `^5.8.3` | `7.0.2` |
| Shared tsconfig | `tsconfig.base.json` ✅ | same |
| CI | one `ci:` job | filter → fan-out → `CI Success` gate |
The bones are right — Bun, the two-directory workspace split, a shared base tsconfig. It is the quality-gate layer that is missing.
## Gaps beyond tooling
Two things stand out reading the root `package.json`:
- **No `test` script and no `typecheck` script at the root.** Scripts are limited to `db:generate`, `db:migrate`, `lint` and `format`. There is a `run_tests.sh` at the repo root that is not wired into anything.
- **`remove-comments.js` sits at the repo root** with no reference from any script. Worth deleting or explaining.
Adding a root `typecheck` and `test` is a prerequisite for most of the rest, since CI and pre-push hooks have nothing to call otherwise.
## Suggested order
1. **Root `typecheck` and `test` scripts** fanning out with `bun run --filter '*'`, plus folding `run_tests.sh` into them or removing it
2. **ESLint + Prettier → Biome** — one mechanical reformat commit, separate from behavioural change
3. **CI: fan out and add the `CI Success` aggregate gate**, then make it the required check for `main`
4. **Lefthook** — staged-only Biome on pre-commit, typecheck + test on pre-push
5. **knip**
6. **Bun catalog** for shared versions (`typescript`, `@types/node`, `drizzle`, `discord.js`)
7. **TypeScript 5.8 → 7**
Step 7 is last deliberately — it is the one most likely to surface real errors, and it is much easier to land once CI is actually running.
## Worth confirming first
This repo has had less recent activity than the others. If it is dormant, the right scope may be just steps 1–3 (so CI catches regressions if work resumes) and closing the rest. Worth deciding before anyone starts on step 7.
贡献指南
这个仓库没有索引到贡献指南
调研方向
Begin with the root package.json, run_tests.sh, remove-comments.js, and config/eslint.js; first confirm whether the repository is dormant and decide whether the scope stops at steps 1–3. Done means the agreed toolchain scope is implemented in the listed order, with root test/typecheck entry points and the CI aggregate gate verified.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- bun, typescript
- 领域
- build-system, ci-cd, tooling
- Issue 类型
- 重构
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 25/100