plugins/tools/task/skills/explore/SKILL.md
项目上下文探索。当用户需要了解项目结构、分析代码架构或为任务收集上下文时触发,定位相关模块和文件,推断代码风格与工具链,输出 context.json
npx skillsauth add lazygophers/ccplugin plugins/tools/task/skills/exploreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
目标导向的渐进式探索,聚焦任务相关上下文。只读分析,不修改项目代码。
项目范围:所有文件搜索和读取必须限定在 project_root 目录内(由 flow 传入,独立调用时为 $(pwd))。
当用户直接调用 /task:explore 时(无 flow 上下文):
task update {task_id} --status=explore 创建任务.lazygophers/tasks/{task_id}/context.json当由 flow 调用时:直接使用传入的 task_id 和 environment 参数。
按优先级依次执行,每个阶段完成后评估是否已有足够信息:
从用户输入(user_prompt 或 align_feedback)中提取关键术语(模块名、函数名、技术概念),使用以下工具定位相关代码:
output_mode="files_with_matches")src/**/*.py、lib/**/*.ts)产出:相关模块列表、关键文件路径列表
对阶段1发现的文件,分析其上下游关系:
产出:依赖关系图(哪些模块依赖哪些模块)、调用链关键节点
从阶段1的文件中采样 3-5 个代表性文件,推断项目约定:
| 维度 | 检测方法 | 示例输出 |
|------|---------|---------|
| 命名约定 | 观察函数/变量/类的命名模式 | snake_case for functions, PascalCase for classes |
| 缩进风格 | 观察缩进字符和宽度 | 4 spaces |
| 导入模式 | 观察 import 语句的组织方式 | absolute imports, stdlib → third-party → local |
| 错误处理 | 观察 try/except 和异常类型 | custom exceptions in errors.py, logging on catch |
| 测试风格 | 观察测试文件的组织和命名 | pytest, test_ prefix, fixtures in conftest.py |
| 文档风格 | 观察注释和 docstring 格式 | Google style docstrings |
产出:code_style 字典
快速扫描项目根目录的配置文件:
package.json、pyproject.toml、Makefile、Cargo.toml 等.eslintrc、ruff.toml、.prettierrc 等pytest.ini、jest.config.*、vitest.config.* 等.github/workflows/、.gitlab-ci.yml 等产出:可用的验证命令(lint、test、build)
探索完成后,必须写入 context.json,结构如下:
{
"task_related": {
"modules": ["模块A", "模块B"],
"files": ["src/auth/login.py", "src/auth/middleware.py"],
"dependencies": {"login.py": ["middleware.py", "models/user.py"]},
"entry_points": ["src/main.py:app"],
"patterns": ["认证使用 JWT", "所有路由经过 middleware"]
},
"code_style": {
"naming": "snake_case for functions, PascalCase for classes",
"indentation": "4 spaces",
"imports": "absolute imports, isort grouping",
"error_handling": "custom AppError hierarchy, logging on catch",
"testing": "pytest, fixtures in conftest.py",
"documentation": "Google style docstrings"
},
"toolchain": {
"language": "Python 3.11",
"package_manager": "uv",
"lint_command": "ruff check .",
"test_command": "pytest",
"build_command": "uv build"
},
"last_updated": "2026-04-13T10:00:00"
}
| 字段 | 要求 |
|------|------|
| task_related.modules | ≥1 个相关模块 |
| task_related.files | ≥1 个关键文件路径 |
| code_style.naming | 非空,明确的命名约定 |
| code_style.indentation | 非空,明确的缩进风格 |
| last_updated | ISO 8601 时间戳 |
dependencies、entry_points、patterns、toolchain — 有则填,无则省略。
如果已有 context.json(从之前的探索中),执行增量更新:
tools
--- name: trellisx-workspace description: 维护 `.trellis/task.md` 任务看板 —— trellis 缺的跨任务总览。**一个表格, 一行一个任务**, 列为 id/名称/描述/状态/阶段/进度/worktree (状态/阶段中文显示)。在 task create/start/阶段切换/archive 后**及时更新**对应行; 并**自动清理超 7 天的已完成行**防膨胀。保持看板与 task.json 实时一致。 when_to_use: 维护 / 创建 / 更新 `.trellis/task.md` 任务看板时; task 生命周期任一节点 (create/start/阶段推进/archive) 之后同步看板时; 用户问"当前有哪些任务 / 任务进度 / 任务看板"时。被 trellisx-flow 与 trellisx-apply 注入的流程引用。 user-invocable: true argument-hint: [show|update|sync|cleanup ...] [task id] arguments:
testing
强制以 Trellis task 闭环处理用户指定的请求 (自判新建/并入 → plan→exec→check→finish 全程不跳步)。**仅用户显式主动调用** (/trellisx-flow 或明确要求"强制走 task 处理这个"); **禁止自动 / 被动 / 推断式调用** —— 不要因为某个请求"看起来该建 task"就自动触发本 skill, 那是 apply 注入的 no_task 倾向的职责。
testing
把 强推task + subtask拆分 + worktree隔离 + 闭环收尾 四维度增量注入当前项目 .trellis/ (workflow.md 的 no_task/planning/in_progress 块 + spec 背书文档 + trellis 生命周期 hook worktree 自动化)。强推 task 与闭环为纯 prompt 软约束 (非平台 hook 硬拦截)。**纯增量追加, 绝不替换 trellis 原生文本** (no_task 分类+征同意/check/finish/前缀全保留)。幂等 (marker 包裹)。
development
Claude Code 会话历史整理 — 扫 ~/.claude/projects/**/*.jsonl 全部 session transcripts, 提取学习增量 (用户校正/决策/踩坑/L0 规则) → 全局记忆库 ~/.cortex/.wiki/memory/. 默认 --apply 落盘 (--dry-run opt-in 仅出 JSON plan 预览). 与 cortex-extract (L4-inbox 内部) 互补.