用途:该技能用于在 src/vs/sessions/** 下进行实现、评审或设计工作,为 Agents Window 相关改动提供核心原则与工作流路由。
核心原则:保持分层方向,vs/sessions 可导入 vs/workbench 及更低层,vs/workbench 绝不可导入 vs/sessions;共享 Sessions 代码保持 provider 中立,非 provider 贡献不得导入 provider 实现;可变会话与聊天状态用 observables 建模,事件仅用于通知,不作为并行状态模型或控制流;Sessions 菜单 ID 注册在 browser/menus.ts 并使用 Menus.;从相应的 sessions..main.ts 入口导入贡献;优先使用 Sessions 自有适配而非共享 workbench 改动,除非能力确实共享;稳定架构写入所属规范,具体行为放入测试。
定位归属区域:从 src/vs/sessions/README.md 开始,再只读取与改动相关的规范,如 LAYERS.md、SESSIONS.md、AUTOMATIONS.md、LAYOUT.md、LAYOUT_CONTROLLER.md、SINGLE_PANE_SCENARIOS.md、SESSIONS_LIST.md、MOBILE.md、AI_CUSTOMIZATIONS.md、copilot-customizations-spec.md 及各 provider 文档。不要默认加载 learning inbox。
变更前检查:追踪现有实现与测试,搜索共享 helper、上下文键、菜单 ID、入口导入与 provider 抽象;确认行为所属层;UI 工作需调用相关无障碍、设计、CSS、布局或主题技能;涉及 agent、LLM、策略、权限、遥测或托管设置时先调用对应专家技能。
实现契约:ISessionsManagementService 负责模型编排与 provider 路由;ISessionsService 负责可见与活动会话行为;providers 通过 ISession 与 IChat 暴露 provider 中立状态;会话状态可观察,消费者响应式派生 UI 状态;贡献通过相应 sessions.*.main.ts 入口加载;Sessions 菜单使用共享 Menus 注册表。
规范编辑门禁:仅当组件归属、接口或生命周期契约、状态机、持久化或跨组件不变量变化时才更新规范;样式、文案、操作位置、遥测字段、设置默认值、实现算法或单个 bug 修复不更新规范。
验证:运行覆盖改动的最小检查,如聚焦单元测试、npm run valid-layers-check(导入或模块归属变化时)、针对性类型检查、相关集成/E2E/可视化验证。仅文档改动需链接、路径与一致性检查。
反馈记录:用户明确纠正或拒绝某方案时,除非使用字面 learn! 触发,否则调用 feedback-learning 技能。跨领域稳定原则才更新本技能,核心原则部分不超过十条。