skillZs
LIVE SKILL TAGS
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
REAL INSTALL DATA
← back to all skills
liuzhengdongfortest/codestable1.2k installs

cs-refactor

Refactor 主入口。触发:优化/重构/拆分/性能/代码太长,且不改变行为、不新增需求。不要用于新增功能(cs-feat)、修复 bug(cs-issue)、对外文档(cs-docs)、大需求拆解(cs-epic)。

How do I install this agent skill?

npx skills add https://github.com/liuzhengdongfortest/codestable --skill cs-refactor
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill provides a structured workflow for code refactoring with mandatory human-in-the-loop checkpoints. It executes local commands for version control and testing, and handles user source code which presents a surface for indirect prompt injection, but it includes robust procedural safeguards.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

cs-refactor

启动必读

动作前先跑 CodeStable preflight:读 .codestable/attention.md(缺失先 cs-onboard);不要用 AGENTS.md/CLAUDE.md 等外部入口代替它;细则见 .codestable/reference/execution-conventions.md

cs-refactor 是重构的唯一推荐入口。它统一判定标准模式和 fastforward 模式,核心底线是行为等价:一旦会改变外部可观察行为,就转 cs-featcs-issue

cs-refactor-ff 长期保留为兼容入口,只传入 requested_mode: fastforward


入口意图

本次调用参数:$ARGUMENTS

意图来源按优先级:调用参数 flag > 兼容入口预设 > 用户话术。参数为空或未被替换(仍是字面 $ARGUMENTS)时跳过该来源;调用参数用 --stage <stage> 表示阶段意图,用 --mode <mode> 表示执行模式,其余文本作为重构目标。

参数入口意图
--stage scanrequested_stage: scan
--stage designrequested_stage: design
--stage applyrequested_stage: apply
--mode standardrequested_mode: standard
--mode fastforwardrequested_mode: fastforward

旧裸 token(如 ffscan)只作为历史提示词兼容识别;新文档和新调用一律用 --stage / --mode

无参数默认行为:没有 flag / 目标描述时,先按 .codestable/refactors/、scan/design/checklist/apply-notes 和当前 git diff 恢复;若没有可恢复重构且用户原话也没有目标,先问用户要优化哪个范围。

入口意图只是偏好。仓库事实优先:已有 scan/design/checklist/apply-notes 时按真实状态续跑。


Spec

csRefactor :: RefactorRequest -> RefactorOutcome

data RefactorRequest = RefactorRequest
  { requestedStage : Maybe Stage         -- scan | design | apply
  , requestedMode  : Maybe Mode          -- standard | fastforward
  , userGoal       : Maybe Text
  , repoFacts      : RepoFacts           -- 优先于 args / 聊天历史
  }

data Stage = Scan | Design | Apply | CodeReview
data Mode  = Standard | Fastforward

data RefactorState = RefactorState       -- 全部从 .codestable/refactors/{slug}/ 恢复
  { refactorDir    : Maybe Path
  , hasScan        : Bool
  , scanSelected   : Bool                -- 用户已勾选 ✓/✗
  , hasDesign      : Bool
  , designStatus   : Draft | Approved    -- {slug}-refactor-design.md 的 status
  , hasChecklist   : Bool                -- {slug}-checklist.yaml
  , pendingHuman   : Bool                -- checklist 里 HUMAN 验证项未放行
  , applyDone      : Bool                -- apply-notes 每步验证齐
  , reviewStatus   : Missing | Passed | Blocking
  }

data RefactorOutcome
  = RoutedTo Stage
  | HumanCheckpoint CheckpointReason
  | Completed RefactorSummary
  | NeedsHuman Reason

data CheckpointReason
  = ScanSelection            -- scan 产物待用户勾选
  | DesignConfirmation       -- design 整体待用户 review 放行
  | HumanValidation          -- apply 中 HUMAN 验证项待用户确认

restoreRefactorStage 从仓库事实选下一步(一旦会改外部可观察行为 → 转 cs-feat 新需求或 cs-issue 修 bug,行为等价是底线):

restoreRefactorStage :: RefactorState -> EntryIntent -> RefactorOutcome
restoreRefactorStage(s, intent)
  | changesBehavior(intent)                          -> NeedsHuman "not behavior-preserving"
  | intent.mode == Fastforward && smallSafe(s)       -> RoutedTo Apply       -- ff:识别+对齐+原地改+测试自证
  | not s.hasScan                                     -> RoutedTo Scan
  | s.hasScan && not s.scanSelected                  -> HumanCheckpoint ScanSelection
  | s.scanSelected && not s.hasDesign                -> RoutedTo Design
  | s.hasDesign && s.designStatus == Draft           -> HumanCheckpoint DesignConfirmation
  | s.designStatus == Approved && s.pendingHuman     -> HumanCheckpoint HumanValidation
  | s.designStatus == Approved && not s.applyDone    -> RoutedTo Apply
  | s.applyDone && s.reviewStatus == Missing         -> RoutedTo CodeReview
  | s.reviewStatus == Blocking                       -> RoutedTo Apply        -- 窄修复,修完重跑 review
  | s.reviewStatus == Passed                         -> Completed summary

Workflow

主执行主线(每次调用按序走;各 stage "怎么做" 的厚规则见对应 protocol,本节只定顺序与边界):

workflow :: RefactorRequest -> RefactorOutcome
workflow = preflight >=> parseEntryIntent >=> restoreRefactorStage
       >=> loadStageProtocol >=> executeOrRoute >=> exitRecoverable

preflight            -- 读 .codestable/attention.md;缺失 -> route to cs-onboard;不得用 AGENTS.md/CLAUDE.md 代替
parseEntryIntent     -- flag > compat-preset > utterance;repoFacts override requestedStage/requestedMode;空参不推断 stage
restoreRefactorStage -- 扫 .codestable/refactors/ + scan/design/checklist/apply-notes + git diff 恢复 RefactorState,
                     -- 选 next stage(见 Spec);会改外部可观察行为 -> route to cs-feat 或 cs-issue
loadStageProtocol    -- 「Reference 加载」映射(见下节);进 stage 才加载该 stage 所需文件
executeOrRoute       -- scan 落盘清单待勾选;design 起草+抽 checklist 待整体放行;
                     -- apply 逐条改+验证+记 apply-notes;遇 HumanCheckpoint 必停
exitRecoverable      -- apply-notes 每步验证齐、design status: approved、next stage 或 checkpoint reason 明确;
                     -- 不夹带 feature / issue 改动

文件放哪儿

.codestable/refactors/{YYYY-MM-DD}-{slug}/
├── {slug}-scan.md
├── {slug}-refactor-design.md
├── {slug}-checklist.yaml
└── {slug}-apply-notes.md

fastforward 默认不建目录;用户要求留记录时才写 {slug}-refactor-note.md


模式选择

启动后先确认用户诉求是否真是行为不变的重构,再检查范围和测试自证能力。

标准模式读取 references/standard/protocol.md,流程是:

scan → 用户勾选 → design → 用户确认 → apply → cs-code-review

fastforward 模式读取 references/fastforward/protocol.md。必须同时满足:

  1. 行为真的不变,没有“顺便支持 X / 改成 Y”。
  2. 范围小:单函数/单组件/少量动点,不跨模块。
  3. 有测试、类型检查或等价证据能自证。

任何一条不满足,回标准模式;不能因为用户说“快点”就跳过安全边界。


Reference 加载

modeProtocol :: Mode -> Protocol
modeProtocol Standard    = "references/standard/protocol.md"
modeProtocol Fastforward = "references/fastforward/protocol.md"

stageSupport :: Stage -> [Support]
stageSupport Scan       = [ "references/library/methods.md"                 -- 方法库,scan 时才全量加载
                          , "references/library/methods-l4.md"
                          , "references/library/methods-architecture.md"
                          , "references/library/scan-checklist-format.md"   -- scan 格式
                          , "references/library/refusal-routing.md" ]       -- 拒绝路由
stageSupport CodeReview = [ skill "cs-code-review" ]                        -- 公开横切技能
stageSupport _          = []

-- 惰性加载(progressive reference loading):按阶段加载,进 stage 才读该 stage 所需文件,不在启动时读全部

人工 checkpoint

触发时机以 Spec 的 restoreRefactorStage 为唯一权威;本节只定义停下后的行为:

onCheckpoint :: CheckpointReason -> Action
onCheckpoint ScanSelection      = 停等用户勾选 scan 产物       -- AI 不替用户勾选
onCheckpoint DesignConfirmation = 停等用户整体 review design   -- 放行后才进入 apply
onCheckpoint HumanValidation    = 停等用户明确继续             -- apply 中 HUMAN 验证项

apply 完成后进入 cs-code-review;Critical/Important 未清零不提交。


Failure Behavior

needsHuman :: Situation -> Bool
needsHuman s = attentionMissing s          -- .codestable/attention.md 缺失 -> 先 cs-onboard
            || noRecoverableRefactor s     -- 无可恢复重构目标
            || ambiguousScope s            -- 重构范围模糊
            || stageConflictsRepoFacts s   -- requested stage 与仓库事实冲突
            || changesBehavior s           -- 诉求其实会改外部可观察行为 -> cs-feat 或 cs-issue
            || ffTurnedComplex s           -- fastforward 途中发现变复杂需切回标准模式

报告:当前产物(scan/design/checklist/apply-notes)、阻塞原因、下一步用户动作、已写文件、是否可安全重试。

退出条件

mayExit :: State -> Bool
mayExit s
  | s.mode == Standard    = scanSelected s && designApproved s
                         && applyNotesEachStepVerified s && testsPassed s && reviewPassed s
  | s.mode == Fastforward = methodScopeEvidenceStated s   -- 已说明方法、范围、验证证据;
                                                          -- 如变复杂已停下切回标准模式

不夹带 feature 或 issue 改动。

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/liuzhengdongfortest/codestable/cs-refactor">View cs-refactor on skillZs</a>