diff --git a/.craftkit/.gitignore b/.craftkit/.gitignore new file mode 100644 index 0000000..5a8d09c --- /dev/null +++ b/.craftkit/.gitignore @@ -0,0 +1,3 @@ +# Local CraftKit data +/local/ +/cache/ diff --git a/.craftkit/README.md b/.craftkit/README.md new file mode 100644 index 0000000..9acafc8 --- /dev/null +++ b/.craftkit/README.md @@ -0,0 +1,13 @@ +# CraftKit 项目资料 + +本目录保存 JobRadar 可供 Agent 使用的配置、规范和知识索引。 + +- `project.json`:项目类型、技术栈、代码边界、依赖标识和已确认命令。 +- `agents/`:项目对 Agent 的补充说明入口。 +- `standards/`:项目开发、测试和交付规范入口。 +- `knowledge/`:经过验证的架构决策和可复用知识入口。 +- `handoff/`:用户明确选择共享的任务交接。 +- `local/`:当前工作副本的本地上下文,不进入 Git。 +- `cache/`:可重新生成的缓存,不进入 Git。 + +共享资料不得包含凭据、个人机器绝对路径或无必要的业务数据。 diff --git a/.craftkit/agents/index.md b/.craftkit/agents/index.md new file mode 100644 index 0000000..8bbe247 --- /dev/null +++ b/.craftkit/agents/index.md @@ -0,0 +1,7 @@ +# Agent 补充说明索引 + +| 主题 | 适用范围 | 入口 | +| --- | --- | --- | +| JobRadar Agent 目标、输入输出、工具、状态与人工确认边界 | Agent 运行时、工具和评测相关任务 | `../../docs/agent-contract.md` | + +项目级通用协作要求见仓库根目录 `../../AGENTS.md`。 diff --git a/.craftkit/knowledge/index.md b/.craftkit/knowledge/index.md new file mode 100644 index 0000000..e6b9920 --- /dev/null +++ b/.craftkit/knowledge/index.md @@ -0,0 +1,10 @@ +# 项目知识索引 + +| 主题 | 内容 | 证据入口 | +| --- | --- | --- | +| 项目架构 | 目标架构、模块职责、数据边界和部署边界 | `../../docs/architecture.md` | +| Agent 契约 | 单 Agent 起步、类型化工具、状态、证据与人工确认边界 | `../../docs/agent-contract.md` | +| 工程路线 | 分阶段交付范围和进入下一阶段的条件 | `../../docs/roadmap.md` | +| 第一阶段工程基线 | 数据库与工程实施决策 | `../../docs/engineering-baseline/dev-plan.md` | + +只收录有证据、适用范围明确且能够复用的技术决策与经验。问题经验和新决策按需建立,避免预建空分类。 diff --git a/.craftkit/project.json b/.craftkit/project.json new file mode 100644 index 0000000..9290ecf --- /dev/null +++ b/.craftkit/project.json @@ -0,0 +1,111 @@ +{ + "schemaVersion": 1, + "initialization": { + "mode": "existing", + "references": [] + }, + "project": { + "name": "JobRadar", + "description": "面向个人使用、以 Agent 为核心的智能岗位发现与决策系统", + "type": "web-application" + }, + "technology": { + "languages": [ + { + "name": "Python", + "version": "3.13" + } + ], + "frameworks": [ + { + "name": "Django", + "version": "6.0.8", + "profile": "" + } + ], + "buildTools": [ + { + "name": "Conda", + "source": "environment.yml" + } + ], + "databases": [ + { + "name": "SQLite", + "usage": "development and test" + }, + { + "name": "PostgreSQL", + "usage": "integration and production" + } + ] + }, + "code": { + "sourceRoots": [ + "." + ], + "packageRoots": [ + "JobRadar" + ], + "modules": [ + { + "name": "project-config", + "path": "JobRadar", + "purpose": "Django project entry points, URL configuration and environment-specific settings" + } + ] + }, + "dependencies": { + "internal": [], + "public": [ + { + "name": "playwright", + "version": "1.60.0", + "purpose": "authorized job-page collection" + }, + { + "name": "psycopg", + "version": "3.3.5", + "purpose": "PostgreSQL database driver" + }, + { + "name": "pillow", + "version": "12.2.0", + "purpose": "image processing support" + }, + { + "name": "openai-agents", + "version": "0.22.0", + "purpose": "planned Agent runtime" + } + ] + }, + "frontend": { + "framework": "", + "componentLibraries": [], + "componentRoots": [], + "documentation": [] + }, + "commands": { + "build": [ + "conda env create -f environment.yml", + "conda env update -n JobRadar -f environment.yml --prune" + ], + "test": [ + "python manage.py test" + ], + "check": [ + "python manage.py check", + "python manage.py makemigrations --check --dry-run" + ] + }, + "documents": { + "archiveRoot": "docs/archive", + "archiveRules": [] + }, + "guidance": { + "agentIndex": ".craftkit/agents/index.md", + "standardsIndex": ".craftkit/standards/index.md", + "knowledgeIndex": ".craftkit/knowledge/index.md" + } +} diff --git a/.craftkit/standards/index.md b/.craftkit/standards/index.md new file mode 100644 index 0000000..4286607 --- /dev/null +++ b/.craftkit/standards/index.md @@ -0,0 +1,11 @@ +# 项目规范索引 + +| 主题 | 适用范围 | 规则入口 | 优先级 | +| --- | --- | --- | --- | +| AI 开发流程、验证与交付 | 全仓库开发任务 | `../../docs/development-guide.md` | 项目规则 | +| 架构、模块、数据与部署边界 | 设计和实现任务 | `../../docs/architecture.md` | 项目规则 | +| Agent 契约与安全边界 | Agent、工具和评测任务 | `../../docs/agent-contract.md` | 项目规则 | +| 阶段范围与实施顺序 | 需求规划和增量实现 | `../../docs/roadmap.md` | 项目计划 | +| Python 格式与静态检查配置 | Python 源码 | `../../pyproject.toml` | 工具配置 | + +未覆盖主题可由 `guidance` 查询中性公共基线。规划内容不能替代已确认的当前实现规则。 diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..44cf016 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,30 @@ +# JobRadar 项目协作说明 + +## 项目定位 + +- 项目名称:JobRadar(职途雷达) +- 项目用途:面向个人使用、以 Agent 为核心的智能岗位发现与决策系统 +- 项目类型:Django Web 应用与 Agent 工程 + +## 技术与代码边界 + +技术栈、源码根、模块和依赖以 `.craftkit/project.json` 为结构化入口。未确认的信息不得自行补全。 + +当前项目处于工程基线阶段。只把仓库中已存在的源码和配置视为已实现能力;README、架构文档和路线图中的后续模块均属于规划,不能描述为已完成。 + +## 项目资料 + +- Agent 补充说明:`.craftkit/agents/index.md` +- 项目规范:`.craftkit/standards/index.md` +- 可复用知识:`.craftkit/knowledge/index.md` +- 项目总览:`README.md` + +## 工作约束 + +- 修改前先阅读与目标目录和任务主题相关的项目资料。 +- 区分明确项目规则、公共建议、规划目标和从代码观察到的现状。 +- 采用增量、小步、可验证的实现方式,不一次性生成所有规划模块。 +- 不提交凭据、个人机器路径、本地状态或可重新生成缓存。 +- 不伪造 Agent 浏览、查询、工具调用、入库结果或验证结论。 +- 高风险或不可逆操作必须由用户确认;不得自动投递简历或联系招聘人员。 +- 发现规范冲突、信息缺失或多种并存风格时先向用户说明。