Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
},
"metadata": {
"description": "Thinloop skills and continuity hooks for Issue-backed discovery, read-only project-status navigation, multi-Issue project DAG decomposition and execution, evidence-backed reengineering and delivery, and approved skill evolution.",
"version": "0.18.0"
"version": "0.18.1"
},
"plugins": [
{
"name": "thinloop",
"source": ".",
"description": "Discovery, Web UIUX, architecture, Next project-status navigation, Project DAG decomposition, Execute READY-wave orchestration, Reengineering gates, QuickDev delivery, maintenance, knowledge, and evolution skills with continuity checks; Project itself remains non-executing.",
"version": "0.18.0"
"version": "0.18.1"
}
]
}
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "thinloop",
"version": "0.18.0",
"version": "0.18.1",
"description": "Simplify complex development with Issue-backed discovery, risk-adaptive Web experience and architecture design, non-executing multi-Issue project decomposition into dependency DAGs, bounded READY-wave execution, read-only project-status navigation, project-scale refactoring and cross-stack reimplementation, autonomous single-Issue PR delivery, evidence-backed maintenance, concise experiential knowledge, and human-approved skill evolution.",
"author": {
"name": "mindcarver"
Expand Down
4 changes: 2 additions & 2 deletions .codebuddy-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
},
"metadata": {
"description": "Thinloop skills and continuity hooks for Issue-backed discovery, read-only project-status navigation, multi-Issue project DAG decomposition and execution, evidence-backed reengineering and delivery, and approved skill evolution.",
"version": "0.18.0"
"version": "0.18.1"
},
"plugins": [
{
"name": "thinloop",
"source": ".",
"description": "Discovery, Web UIUX, architecture, Next project-status navigation, Project DAG decomposition, Execute READY-wave orchestration, Reengineering gates, QuickDev delivery, maintenance, knowledge, and evolution skills with continuity checks; Project itself remains non-executing.",
"version": "0.18.0"
"version": "0.18.1"
}
]
}
2 changes: 1 addition & 1 deletion .codebuddy-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "thinloop",
"version": "0.18.0",
"version": "0.18.1",
"description": "Simplify complex development with Issue-backed discovery, risk-adaptive Web experience and architecture design, non-executing multi-Issue project decomposition into dependency DAGs, bounded READY-wave execution, read-only project-status navigation, project-scale refactoring and cross-stack reimplementation, autonomous single-Issue PR delivery, evidence-backed maintenance, concise experiential knowledge, and human-approved skill evolution.",
"author": {
"name": "mindcarver"
Expand Down
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "thinloop",
"version": "0.18.0",
"version": "0.18.1",
"description": "Simplify complex development with Issue-backed discovery, risk-adaptive Web experience and architecture design, non-executing multi-Issue project decomposition into dependency DAGs, bounded READY-wave execution, read-only project-status navigation, project-scale refactoring and cross-stack reimplementation, autonomous single-Issue PR delivery, evidence-backed maintenance, concise experiential knowledge, and human-approved skill evolution.",
"author": {
"name": "mindcarver"
Expand Down
2 changes: 1 addition & 1 deletion .zcode-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "thinloop",
"version": "0.18.0",
"version": "0.18.1",
"description": "Simplify complex development with Issue-backed discovery, risk-adaptive Web experience and architecture design, non-executing multi-Issue project decomposition into dependency DAGs, bounded READY-wave execution, read-only project-status navigation, project-scale refactoring and cross-stack reimplementation, autonomous single-Issue PR delivery, evidence-backed maintenance, concise experiential knowledge, and human-approved skill evolution.",
"author": {
"name": "mindcarver"
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</p>

<p align="center">
<kbd>v0.18.0</kbd>
<kbd>v0.18.1</kbd>
&nbsp;
<kbd>ISSUE-DRIVEN</kbd>
&nbsp;
Expand All @@ -36,6 +36,8 @@ Thinloop 不接管开发过程,只守住容易在长任务里丢失的结果

> **需求不被误解,体验与架构有据可循,完成声明有真实证据,仓库漂移能被主动发现。**

每个关键步骤会用图标和边框醒目展示「第几步、当前步骤、做什么、为什么」,直接调用任一技能也适用;同一步内不为每个工具调用重复提示。规则与示例见[步骤沟通](./skills/scd-quickdev/references/step-communication.md)。

<a id="capability-map"></a>

## 三层能力 / THREE LAYERS
Expand Down
1 change: 1 addition & 0 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@ codebuddy plugin update thinloop@thinloop --scope user
新组合生效,并移除旧的 `standard-thinloop` 之类 preset 拷贝,避免双重
纠正。范围见 [`v0.17.1`](./releases/v0.17.1.md)。
- 升级到 v0.18.0:新增 `scd-ui-polish`,确认十三个 Skill 完整可读;UIUX 与页面验收共用八维视觉标准、实际页面自审和前后对比。既有设计确认与独立验收门继续有效。
- 升级到 v0.18.1:十三个 Skill 统一在关键步骤开始前,用带图标和边框的醒目文本块说明「第几步、当前步骤、做什么、为什么」;直接调用也生效,同一步不重复刷屏。更新后新建任务或会话加载新指令。
- 若从 v0.6.x 升级,另确认旧 `scd-dev-loop` 已消失。

更新后可以在 Thinloop 源码仓库运行只读检查器:
Expand Down
7 changes: 7 additions & 0 deletions docs/releases/v0.18.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Thinloop v0.18.1

全部十三个 Skill 在关键步骤开始前用图标和边框醒目展示当前步骤编号、行动和简短原因,帮助用户理解接下来做什么、为什么需要做。各入口直接调用时也读取同一份步骤沟通规则。

默认使用等号边框文本块;阶段切换、方向变化、等待或阻塞时更新,同一步连续工具调用不重复提示。同一任务连续编号,切换子技能不重置;未知总步数不编造;原有路由、权限、确认和验收门保持有效。

验证范围包括入口与共用参考的契约检查、仓库 CI 和独立场景验收。规则属于模型指令,不能据此保证所有宿主或模型每次都遵从;已运行会话需新建任务或重新加载技能后生效。
2 changes: 1 addition & 1 deletion marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"name": "thinloop",
"source": ".",
"description": "Discovery, Web UIUX, architecture, Next project-status navigation, Project DAG decomposition, Execute READY-wave orchestration, Reengineering gates, QuickDev delivery, maintenance, knowledge, and evolution skills with continuity checks; Project itself remains non-executing.",
"version": "0.18.0"
"version": "0.18.1"
}
]
}
2 changes: 2 additions & 0 deletions skills/scd-architecture/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "在生产实施前设计或验证领域模型、系统边界、数

# SCD 架构设计

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

把已确认的产品行为转化为一致的技术设计和可验证的共享契约,但不把架构设计变成每次变更的必经阶段。本技能负责设计与验证;生产实施交给 `scd-quickdev`。

## 选择最轻量且充分的路径
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-discovery/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "在实施前,把定义不足的产品想法转化为经过明确

# SCD 需求发现

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

在实施前解决影响重大的产品决策,但不把需求发现变成固定仪式。全新产品需要定义已确认的 MVP 产品基线;现有产品只覆盖下一项连贯交付,不规划产品的全部未来。

完整 Discovery 期间不得编辑实施代码。实施开始前,用户必须明确确认合并后的产品契约。
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-evolve/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "诊断一段已完成或暂停的开发交互,并对真实使用

# SCD 技能演进

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

通过人工确认且可逆的试验改进 Thinloop。默认把对话证据视为不完整,区分技能缺陷和其他原因;不得仅因结果令人失望就重写技能。

## 触发策略
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-execute/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "消费 scd-project 的实时 Delivery-Issue DAG、选择当前安

# SCD 项目执行

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

把已确认的 Initiative 依赖图转化为有边界的交付波次,同时不让 Project 变成调度器,也不让 QuickDev 跨越多个 Issues。

维护以下边界:
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-interview/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "根据明确请求评审当前对话,提取值得保存供个人

# SCD 面试题

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

把开发对话中的技术实质转化为少量个人学习面试题。只有用户明确请求时运行,写入前必须确认。提取请求只授权分析候选题,不授权持久化;用户确认精确草稿、范围和目标位置后才能写入。

本技能服务于用户的面试准备,不是 Agent 记忆。它与 `scd-knowledge` 不同,后者保存会改变后续 Agent 决策的经验。题目可以来自同一对话,但目的、准入条件和保存结构不同。
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-knowledge/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "把有证据支持的开发经验沉淀为简洁、经过确认的

# SCD 开发知识

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

保留经过验证的经验,但不把每次对话都变成永久上下文。只有用户明确请求时运行,并且修改知识前必须确认。沉淀请求只授权分析候选项,不授权持久化;用户确认精确草稿、范围、目标位置以及创建或更新操作后才能写入。

## 选择请求的操作
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-maintenance/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "审计并修复仓库技术债务、代码文档漂移、陈旧规

# SCD 仓库维护

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

从仓库证据发现可维护性问题,然后只修复有边界、有理由的一组问题。每项冲突的权威方向确定前,广泛审计保持只读。

## 选择操作
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-next/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "检查当前仓库的实时项目状态并建议唯一下一行动

# SCD 下一步

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

把模糊的“现在应该做什么?”转化为一个有证据支持的继续行动,不让用户自己重建项目状态或选择 Thinloop 技能。

Next 被调用时执行一次主动、只读检查。它不是后台通知器、守护进程、调度器、项目数据库或实施循环。
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-project/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "在实施前,把跨越多个可独立验证交付的已确认项

# SCD 项目规划

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

把已确认的多交付项目转化为小型、由跟踪器承载的交付图。依赖图及其可执行 Issues 就绪后停止;项目拆解不授予实施权限。

维护以下边界:
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-quickdev/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "编码 Agent 被要求修改仓库时,把清晰的单交付仓

# SCD 快速开发

开始执行前必须先读取并遵守[步骤沟通](references/step-communication.md);直接调用本技能也适用。

一个中文 GitHub Issue 是选中交付边界与验收的事实来源。完成声明不得超过观察证据;独立验收、真实页面门、高风险确认和清理关闭门始终有效。

## 确定边界
Expand Down
27 changes: 27 additions & 0 deletions skills/scd-quickdev/references/step-communication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 步骤沟通

全部 Thinloop 技能共用本规则,直接调用任何子技能也适用。技能启动时读取;每个有意义的步骤开始前,在用户可见的进度消息中展示「第几步、当前步骤、做什么、为什么」,不得只藏在计划、工具日志或最终总结里。

## 展示方式

默认使用带等号边框和图标的文本块:

```text
======= 🧪 第 3 步:验证修改 =======
🎯 做什么:运行本次变更的相关测试和仓库检查。
💡 为什么:确认修改解决了目标问题,并检查是否影响现有行为。
================================
```

步骤标题必须带与当前行动相符的图标,例如 🔎 检查、🛠️ 实施、🧪 验证、👥 独立验收、⏳ 等待或 🚧 阻塞;「做什么」与「为什么」分别用 🎯 和 💡 标识。图标不能代替文字。用具体中文任务名,必要时附技能名;不要只写「执行 scd-quickdev」或「处理中」。行动和原因各用一句话,原因应结合当前任务说明目的、要消除的不确定性或要避免的风险,不用「因为流程要求」代替解释。只提供用户可理解的简短理由,不输出内部推理链。

宿主不支持文本块时,使用带图标的粗体步骤标题与独立的「🎯 做什么」「💡 为什么」两行,保持醒目。必须注明当前第几步,默认用「第 N 步:具体任务名」,实际输出时把 N 替换为数字。按当前任务已展示的实际步骤从 1 连续编号,进入新的有意义步骤才递增;同一步进度更新沿用原编号,切换子技能不重置。恢复任务时先核对已有编号,无法核实时明确以本次恢复为编号起点。总步数已确定时显示「第 N/M 步」;总步数未知时只显示「第 N 步」,不编造总数、百分比或固定流程。

## 何时更新

- 技能启动后的首个实际步骤,以及阶段切换、方向变化、等待用户或遇到阻塞时展示;切换技能时说明新行动为何需要。
- 同一步内连续的工具调用不重复展示;已有提示完整覆盖当前行动时不再补发相同提示。
- 等待或阻塞时说明缺失什么、为什么影响推进,以及下一行动;保留已有确认请求,不把解释当作用户授权。
- 用户明确要求更简洁或其他样式时遵从其要求;简短单步回答只需一个紧凑提示,不人为拆步骤。

本规则只调整用户可见的沟通,不替代原有确认、权限、验收或交付门;最终交付仍报告实际结果与证据,不重放所有步骤。
2 changes: 2 additions & 0 deletions skills/scd-reengineering/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "通过有证据支持的项目级重构或新实施,对现有仓

# SCD 再工程

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

把现有系统转化为更好的实施,同时明确区分源代码、观察行为、产品意图和法律许可。由本技能管理再工程项目及其执行;产品决策、架构、项目拆解和单 Issue 交付复用现有 Thinloop 技能。

维护以下边界:
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-ui-polish/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "优化已有 Web 页面的视觉质量,按排版、留白、层

# SCD 页面优化

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

把已有页面优化到与产品用途、内容和品牌相符的精细程度,并用实际页面和前后对比证明改进。独立调用本技能即可开始;用户要求实施时继续完成代码交付,不停在建议清单。

## 检查现有页面
Expand Down
2 changes: 2 additions & 0 deletions skills/scd-uiux/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: "在生产实施前设计或完善 Web 产品的用户体验和界

# SCD UIUX 设计

开始执行前必须先读取并遵守[步骤沟通](../scd-quickdev/references/step-communication.md);直接调用本技能也适用。

让 Web 体验清晰到足以评审和实施,但不把每次界面变更都变成设计项目。本技能设计行为与呈现;生产代码交给 `scd-quickdev`。

## 选择最轻量且充分的路径
Expand Down
2 changes: 1 addition & 1 deletion tests/chinese-skill-payload.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ test("全部 Thinloop Skill 文本载荷均包含中文", () => {
.flatMap((entry) => collectPayloadFiles(path.join(skillsRoot, entry.name)))
.sort();

assert.equal(files.length, 66); // Shared visual reference and UI Polish skill metadata.
assert.equal(files.length, 67); // Shared visual and step communication references.
for (const file of files) {
assert.match(read(file), han, file);
}
Expand Down
44 changes: 44 additions & 0 deletions tests/step-communication.test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import assert from "node:assert/strict";
import fs from "node:fs";
import path from "node:path";
import test from "node:test";
import { fileURLToPath } from "node:url";

const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
const skills = fs.readdirSync(path.join(root, "skills")).filter(name => name.startsWith("scd-"));
const canonical = path.join(root, "skills/scd-quickdev/references/step-communication.md");

test("全部直接技能入口在工作流前加载唯一的步骤沟通规则", () => {
assert.equal(skills.length, 13);
for (const name of skills) {
const entry = path.join(root, "skills", name, "SKILL.md");
const source = fs.readFileSync(entry, "utf8");
const links = [...source.matchAll(/\[步骤沟通\]\(([^)]+)\)/g)];
assert.equal(links.length, 1, name);
assert.equal(fs.realpathSync(path.resolve(path.dirname(entry), links[0][1])), fs.realpathSync(canonical), name);
assert.match(source, /开始执行前必须先读取并遵守/);
assert.ok(source.indexOf("[步骤沟通]") < source.indexOf("\n## "), name);
}
});

test("模板醒目且每步说明具体行动与原因", () => {
const source = fs.readFileSync(canonical, "utf8");
assert.match(source, /```text\n======= 🧪 第 3 步:[\s\S]*\n🎯 做什么:[\s\S]*\n💡 为什么:[\s\S]*\n={7,}\n```/);
assert.match(source, /直接调用任何子技能/);
assert.match(source, /具体中文任务名/);
assert.match(source, /步骤标题必须带与当前行动相符的图标/);
assert.match(source, /图标不能代替文字/);
assert.match(source, /必须注明当前第几步/);
assert.match(source, /切换子技能不重置/);
assert.match(source, /同一步进度更新沿用原编号/);
assert.match(source, /目的、要消除的不确定性或要避免的风险/);
});

test("阶段切换和阻塞可见,同步操作不刷屏且不虚构进度", () => {
const source = fs.readFileSync(canonical, "utf8");
assert.match(source, /阶段切换、方向变化、等待用户或遇到阻塞/);
assert.match(source, /同一步内连续的工具调用不重复/);
assert.match(source, /总步数未知时只显示「第 N 步」,不编造总数/);
assert.match(source, /缺失什么、为什么影响推进/);
assert.match(source, /不替代原有确认、权限、验收或交付门/);
});
Loading