返回 Skill 列表
extension
分类: 开发与工程无需 API Key

code-foundations

对代码任务进行分类,并执行具有质量门的任务特定检查清单。将任务路由到WRITE、DEBUG、REVIEW、OPTIMIZE、REFACTOR、SIMPLIFY或SECURE工作流,每个工作流都会调用相关的CC和APOSD技能。生成分类声明以及带有强制预提交验证的DONE/NOT DONE裁决。在编写、调试、审查、修复、实现、优化、重构、简化或保护代码时使用。触发条件包括:实现、构建、创建、调试、修复错误、损坏、错误、审查、审计、优化、慢速、性能、重构、清理、简化、令人困惑、过于复杂、安全、漏洞。

person作者: jakexiaohubgithub

Code Foundations

When in doubt, load this skill. When NOT in doubt, load it anyway.


Master Checklist: Execute In Order

Phase 1: Classification (MANDATORY - Do First)

  • [ ] 1.1 Identify task type from user signals: | Signal | Task Type | |--------|-----------| | "implement", "write", "build", "add", "create" | → WRITE | | "debug", "fix bug", "failing", "broken", "error" | → DEBUG | | "review", "check", "audit", "is this good?" | → REVIEW | | "optimize", "slow", "performance", "faster" | → OPTIMIZE | | "refactor", "clean up", "improve structure" | → REFACTOR | | "simplify", "too complex", "confusing" | → SIMPLIFY | | "secure", "vulnerability", "validate input" | → SECURE |

  • [ ] 1.2 State classification: "This is a [TASK TYPE] task"

  • [ ] 1.3 If ambiguous, ask: "Are you looking for [option A], [option B], or something else?"


Phase 2: Mindset Check (For WRITE, DEBUG, REFACTOR)

  • [ ] 2.1 INVOKE cc-developer-character
  • [ ] 2.2 Verify: Am I thinking strategically, not tactically?
  • [ ] 2.3 Check for rationalization red flags (see below)

Phase 2.5: Pattern Reuse Gate (For WRITE, DEBUG, REFACTOR, SECURE)

MANDATORY: Before implementing, search the codebase.

  • [ ] 2.5.1 Search: How is this done elsewhere in this codebase?
  • [ ] 2.5.2 Identify: What patterns exist for this type of work?
  • [ ] 2.5.3 Decide: Follow existing pattern OR document why diverging

| If | Then | |----|------| | Pattern exists and is good | Follow it exactly | | Pattern exists but mediocre | Follow anyway (consistency > perfection) | | Pattern exists but bad | Document why diverging, consider fixing globally | | No pattern exists | You're establishing one - be deliberate |

See: pattern-reuse-gate.md


Phase 3: Execute Task-Specific Checklist

Go to the checklist for your task type:


Phase 4: Pre-Commit Gate (MANDATORY - Before "Done")

  • [ ] 4.1 INVOKE aposd-verifying-correctness
  • [ ] 4.2 Requirements: Each requirement mapped to code?
  • [ ] 4.3 Concurrency: Shared state protected?
  • [ ] 4.4 Errors: All failure points handled?
  • [ ] 4.5 Resources: All acquired resources released?
  • [ ] 4.6 Boundaries: Edge cases (empty, null, huge) handled?
  • [ ] 4.7 Security: Untrusted input validated?
  • [ ] 4.8 State verdict: DONE or NOT DONE (list blockers)

WRITE Checklist

Goal: Create new code with good design

Prerequisites

  • [ ] INVOKE cc-developer-character (mindset)
  • [ ] INVOKE cc-construction-prerequisites (architecture ready?)

Design Phase

  • [ ] INVOKE aposd-designing-deep-modules
  • [ ] Sketch 2-3 radically different approaches (not just "think through")
  • [ ] Compare approaches: Which has simplest interface?
  • [ ] Choose approach and document rationale
  • [ ] Verify depth: Interface much simpler than implementation?

Implementation Phase

  • [ ] INVOKE aposd-improving-code-clarity
  • [ ] Write interface comments BEFORE implementation
  • [ ] INVOKE cc-pseudocode-programming
  • [ ] Write pseudocode, then translate to real code
  • [ ] Names precise? (Can someone guess meaning in isolation?)
  • [ ] Names consistent? (Same name = same thing everywhere?)

Verification Phase (Parallel Subagents)

  • [ ] CHECKER(cc-routine-and-class-design)
  • [ ] CHECKER(cc-defensive-programming)

See references/checker-dispatch.md

Pre-Commit

  • [ ] Run Phase 4 checklist

DEBUG Checklist

Goal: Find and fix bug without making design worse

Investigation Phase

  • [ ] INVOKE cc-developer-character (mindset)
  • [ ] INVOKE cc-quality-practices (Scientific Method)
  • [ ] Stabilize error: Can you reproduce reliably?
  • [ ] Locate error: Use binary search / divide-and-conquer
  • [ ] Understand root cause (not just symptoms)

Fix Phase

  • [ ] INVOKE aposd-maintaining-design-quality
  • [ ] Ask: "Is current design still optimal given this fix?"
  • [ ] If NO: Refactor first, then fix
  • [ ] If YES: Make fix within existing design
  • [ ] INVOKE cc-refactoring-guidance
  • [ ] Fix ONLY the bug (don't mix fix + refactor in one commit)
  • [ ] Commit fix separately from any cleanup

Verification Phase

  • [ ] Verify fix actually works
  • [ ] Check for similar bugs elsewhere (same pattern?)
  • [ ] INVOKE cc-quality-practices: Search for similar defects

Pre-Commit

  • [ ] Run Phase 4 checklist

REVIEW Checklist

Goal: Detect design problems and complexity

CHECKER pattern: See references/checker-dispatch.md

Quick Checks (Inline)

Complexity Symptoms:

  • [ ] Change amplification? (Simple change = many modifications?)
  • [ ] Cognitive load? (Must know too much to work here?)
  • [ ] Unknown unknowns? (Unclear what code/info is needed?) ← Worst

Module Depth:

  • [ ] Interface simpler than implementation?
  • [ ] Few methods (not many small ones)?
  • [ ] Information hidden (not leaked across modules)?

Red Flags:

  • [ ] Shallow module (interface ≈ implementation)
  • [ ] Information leakage (same knowledge in multiple places)
  • [ ] Pass-through methods (just delegates to another)

Full Checklists (Parallel Subagents)

  • [ ] CHECKER(aposd-reviewing-module-design)
  • [ ] CHECKER(cc-routine-and-class-design)
  • [ ] CHECKER(cc-quality-practices)

Output

  • [ ] List Findings (from all agents)
  • [ ] List Questions (need more context)
  • [ ] Note Positive patterns

OPTIMIZE Checklist

Goal: Improve performance based on measurement, not intuition

Measurement Gate (MANDATORY)

  • [ ] INVOKE cc-performance-tuning
  • [ ] INVOKE aposd-optimizing-critical-paths
  • [ ] STOP: Have you measured? (No measurement = no optimization)
  • [ ] Profile data collected? (timing, call counts, memory)
  • [ ] Specific hotspot identified? (not just "it's slow")
  • [ ] Baseline established?
  • [ ] Which dimension? (throughput / latency / memory / CPU)

Fundamental Fixes (Try First)

  • [ ] Can you add a cache?
  • [ ] Can you use a better algorithm?
  • [ ] Can you bypass layers?
  • [ ] If YES to any → implement and re-measure

Critical Path Redesign (Last Resort)

  • [ ] What's minimum code for common case?
  • [ ] Disregard existing structure—what's ideal?
  • [ ] Define "the ideal" even if not fully achievable

Verification

  • [ ] Re-measure with same methodology
  • [ ] Faster with data? → Keep
  • [ ] Simpler AND at least as fast? → Keep
  • [ ] Neither? → BACK OUT changes

Pre-Commit

  • [ ] Run Phase 4 checklist

REFACTOR Checklist

Goal: Improve structure without changing behavior

Prerequisites

  • [ ] INVOKE cc-developer-character (mindset)
  • [ ] Code currently WORKS? (All tests pass?)
  • [ ] If NO → This is FIXING, not refactoring. Go to DEBUG checklist.

Planning

  • [ ] INVOKE cc-refactoring-guidance
  • [ ] INVOKE aposd-maintaining-design-quality
  • [ ] Design fundamentally sound? (If NO → consider rewrite)
  • [ ] Changes touch >30% of module? (If YES → consider rewrite)
  • [ ] Make list of specific refactoring steps

Execution (One At A Time)

  • [ ] Save starting code (version control checkpoint)
  • [ ] Do ONE refactoring
  • [ ] Recompile and retest
  • [ ] State: "Tests pass after [change]"
  • [ ] Commit if tests pass
  • [ ] Repeat for next refactoring

Verification (Parallel Subagents)

  • [ ] CHECKER(cc-control-flow-quality)
  • [ ] CHECKER(cc-routine-and-class-design)

See references/checker-dispatch.md

Quick Checks:

  • [ ] Behavior preserved? (Same tests pass)
  • [ ] Design improved? (Simpler interfaces, less duplication)

Pre-Commit

  • [ ] Run Phase 4 checklist

SIMPLIFY Checklist

Goal: Reduce complexity, not just relocate it

Analysis

  • [ ] INVOKE aposd-simplifying-complexity
  • [ ] Identify complexity symptoms present
  • [ ] Identify what makes it complex (dependencies? obscurity?)

Error Reduction Hierarchy (Apply In Order)

For each error condition:

  • [ ] Level 1 - Define out: Can semantics eliminate this error?
  • [ ] Level 2 - Mask: Can low-level code handle without exposing?
  • [ ] Level 3 - Aggregate: Can multiple errors share one handler?
  • [ ] Level 4 - Crash: Rare, unrecoverable, app-level only?
  • [ ] Document which level applied and why

Pull Complexity Down (Check All Three)

  • [ ] Is complexity related to module's existing functionality?
  • [ ] Will pulling down simplify code elsewhere?
  • [ ] Will pulling down simplify module's interface?
  • [ ] All three YES? → Pull down. Otherwise → Leave.

Verification

  • [ ] Interfaces simpler than before?
  • [ ] Callers do less work than before?
  • [ ] Error handling consolidated or eliminated?
  • [ ] Complexity REDUCED (not just relocated)?

Pre-Commit

  • [ ] Run Phase 4 checklist

SECURE Checklist

Goal: Protect against malicious or malformed input

Analysis (Parallel Subagents)

  • [ ] CHECKER(cc-defensive-programming)
  • [ ] INVOKE aposd-simplifying-complexity (error reduction context)

See references/checker-dispatch.md

Identify:

  • [ ] All external input sources
  • [ ] Trust boundaries

Validation (For Each External Input)

  • [ ] Input validated before use?
  • [ ] No string concatenation for SQL/shell/HTML?
  • [ ] Path traversal prevented?
  • [ ] Secrets not logged or exposed in errors?
  • [ ] Auth/authz checked BEFORE action?

Error Handling

  • [ ] No empty catch blocks?
  • [ ] Error messages don't leak security info?
  • [ ] Assertions used for bugs only (not expected errors)?

Pre-Commit

  • [ ] Run Phase 4 checklist

Rationalization Red Flags

If you think any of these, STOP and apply the checklist anyway:

| Thought | Reality | |---------|---------| | "This is simple/trivial" | Simple tasks have HIGHEST error rates | | "I can already see the issue" | Seeing ≠ systematic verification | | "I already know how to do this" | Knowing ≠ executing checklist | | "It's just config, not code" | Config that affects runtime IS code | | "The code already works" | Your CHANGE can break what worked | | "I'll refactor later" | Later = never | | "Just make it work" | Tactical thinking → permanent slowdown | | "I don't have time" | Checklist takes minutes; debugging takes hours | | "It's just one line" | One-line changes have highest error rate | | "Tests pass, so it's done" | Tests check behavior, not design quality |


Crisis Mode (Production Down)

You STILL must:

  1. [ ] Classify the task (5 seconds)
  2. [ ] State what you're skipping and why
  3. [ ] Fix ONLY—no refactoring, no cleanup
  4. [ ] Verify fix works
  5. [ ] Commit to returning within 24 hours for full checklist

What you may NOT skip:

  • Input validation on external data
  • Verifying fix actually works
  • One sentence explaining WHY the fix works

Two Skill Families

| Family | Source | Focus | Prefix | |--------|--------|-------|--------| | Code Complete | McConnell | Process rigor, metrics, checklists | cc-* | | APOSD | Ousterhout | Design philosophy, complexity reduction | aposd-* |

Use both. CC provides tactical rigor; APOSD provides strategic philosophy.


Quick Reference: All Skills

CC Skills (Process & Metrics)

| Skill | Use For | |-------|---------| | cc-developer-character | Mindset check before WRITE/DEBUG/REFACTOR | | cc-construction-prerequisites | Architecture ready before coding | | cc-pseudocode-programming | Design-before-code | | cc-routine-and-class-design | Cohesion, coupling, inheritance | | cc-defensive-programming | Error handling, validation | | cc-refactoring-guidance | Safe refactoring process | | cc-quality-practices | Testing, debugging, reviews | | cc-control-flow-quality | Nesting, complexity, loops | | cc-data-organization | Variables, types, data structures | | cc-code-layout-and-style | Formatting, visual structure | | cc-performance-tuning | Optimization process | | cc-integration-practices | Build, integration |

APOSD Skills (Design Philosophy)

| Skill | Use For | |-------|---------| | aposd-designing-deep-modules | Interface design, design-it-twice | | aposd-simplifying-complexity | Error reduction, pull-down technique | | aposd-improving-code-clarity | Comments-first, naming | | aposd-maintaining-design-quality | Strategic vs tactical mindset | | aposd-reviewing-module-design | Complexity symptoms detection | | aposd-optimizing-critical-paths | Measure-first optimization | | aposd-verifying-correctness | Pre-commit verification |


Shared Reference