M0: 工作区骨架 + 五道门禁 + 环境自举

- pnpm workspaces / tsconfig 双工程(node · web)/ 路径别名(§11.1)
- eslint flat(§11.3 + §12.5 可机检项)/ dependency-cruiser 基线八条 + JCAI 增补(§11.4)
- tools/module-tiers.json + gen-depcruise-tiers.ts 生成 tier-order 逐层规则
- tools/api-report.mjs 契约快照只留契约面(ADR-005)
- docker-compose(PG16)+ db/init 四 schema;种子数据五岗位五员工冻结为常量
- docs/debt.md · docs/adr/ADR-005

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
JCAI Main Agent
2026-07-27 00:18:58 +08:00
co-authored by Claude Opus 5
commit 7cd664af3a
50 changed files with 9052 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
/**
* apps/api 唯一组装层入口(编码规范 §5.2)。
* 只有 app/ 能同时认识多个模块:new adapter、注入 port、注册路由 / worker / Mastra 实例。
*
* M0:骨架 —— 门禁跑通即可,业务装配自 M1 起逐层填入。
*/
import { loadConfig } from './config.ts';
export async function boot(): Promise<void> {
const config = loadConfig();
process.stdout.write(
`JCAI api · M0 骨架 · env=${config.nodeEnv} · port=${config.port} · db=${config.databaseUrl.replace(/:[^:@]*@/, ':***@')}\n`,
);
}
if (import.meta.url === `file://${process.argv[1]}`) {
await boot();
}