code-design
Use only when explicitly requested by name — "code-design", "code design", "/code-design", "/cc-ai-dev:code-design" — or when another skill or a…
Skill by CreativeCodersTeam
Chalk Labs
Need help deploying code-design?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/creativecodersteam-code-design
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Nov 1, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/code-design
What's inside
- Skill name
code-design- Description
- Use only when explicitly requested by name — "code-design", "code design", "/code-design", "/cc-ai-dev:code-design" — or when another skill or a user-confirmed skill selection loads it by name, to write or change production code with a deliberate design pass instead of appending to the nearest existing class. Before writing, decides for every new responsibility whether it extends an existing unit or gets its own (Single Responsibility, Separation of Concerns); after the tests are green, refactors the touched code (Extract Method, Extract Class, Extract Interface at real seams, DRY for duplicated knowledge) and checks the result against KISS and YAGNI so it does not tip into over-engineering. Stack-agnostic. Reports every design decision with its principle and the rejected alternative. Never commits. Must NOT activate on its own for "write clean code", "use SOLID", "implement this feature", "clean this up", or any other request that does not name the skill.
- License
- Apache-2.0
- Instructions
- 284 lines in SKILL.md · view on GitHub
Files (3)
- SKILL.md
- design-moves.md · references/
- principles.md · references/
SKILL.md (first lines)
# code-design Write new code in a shape that a reader can follow and a maintainer can change — by deciding *where* each piece of behaviour lives before writing it, and tightening the result after it works. ## Contract - **Input:** a change to production code — a feature, an extension, a behaviour change — plus the codebase it lands in. Also works as a rule set loaded by another workflow (see [Inside another workflow](#inside-another-workflow)). - **Output:** the code change with its tests, and a **Design notes** block in the final reply (or in the calling workflow's report). - **Not in scope:** restructuring code the change does not touch (that is the `refactor` skill), bug fixes that ride along, performance tuning, style-only reformatting. - **Never commits.** The user reviews the diff and decides what enters history. **Explicit invocation.** This skill starts only when it was named — `/code-design`, `/cc-ai-dev:code-design`, "code-design" in the prompt, or a load by name from another skill or a skill selection the user confirmed. "Write clean code" or "follow SOLID" in a request is not an invocation; such a request is handled as an ordinary request without this skill. ## Why this skill exists An agent extending a codebase feels a strong pull toward the nearest existing class: it is already imported, already registered, already tested, and adding a method there produces the smallest diff. Each single step looks harmless. Repeated over twenty changes, it produces the service with 1,500 lines and twelve dependencies that nobody dares to touch. The smallest diff is not the smallest design. The cost of "just add it here" is paid later, by every reader of the class and by every test that has to construct all of its dependencies to check one of its behaviours. This skill moves the decision to the moment it is cheapest: before the first line is written. The opposite failure is just as real. An agent told "use SOLID" tends to put an interface in front of every class, a factory in front of every constructor, and a strategy in front of every `if`. Indirection that does not pay for itself is also complexity. So the principles here come in pairs that pull against each other, and the workflow ends with a check against the brakes. ## The principles, and how they pull Operational definitions — signals, actions, counter-indications — are in [`references/principles.md`](references/principles.md). The short version: | Decompose when … | … but stop when | |---|---| | **Single Responsibility** — a unit changes for one reason | **KISS** — a split that forces the reader through more files than it saves in understanding | | **Separation of Concerns** — domain rules, I/O, orchestration, and presentation live apart | **YAGNI** — an abstraction exists for a variation nobody has asked for | | **DRY** — one piece of *knowledge* has one home | **Coincidental similarity** — two blocks look alike but change for different reasons | | **Extract Interface / Dependency Inversion** — at a real seam (external system, test double for I/O, plug-in point) | **Speculative Generality** — one implementation and no second caller | | **Extract Method / Class** — a unit does several things at several levels of abstraction | **Middle Man** — the extracted unit only forwards | A decision cites a principle from the left column *and* has checked the right one. ## Workflow ``` Step 1 Read the neighbourhood — the units the change would touch, their size, responsibilities, seams Step 2 Design pass — per new responsibility: extend, reuse, or new unit; state the sketch Step 3 Build it — tests first where the project has tests; the shape from Step 2 Step 4 Refactor pass — after green, on touched code only; one move at a time, tests after each Step 5 Counter-check — every abstraction pays rent, or it goes Step 6 Design notes — decisions, rejected alternatives, what was left alone ``` ### Step 1 — Read the neighbourhood Before designing, look at the code the change would naturally land in, and at its surroundings: - **The candidate host(s):** the class, module, or file you would extend by default. Its size, its public members grouped by what they do, its dependencies (constructor parameters, imports, module globals). A host whose members fall into several unrelated groups already has several responsibilities — adding one more makes the eventual split harder, not easier. - **The project's architecture pattern:** layering, vertical slices, handlers, services and repositories, feature folders. Read two or three sibling features. The pattern decides *where* things go; the principles decide *how finely* to cut inside it. - **Existing units that already do part of the job:** helpers, value objects, validators, formatters, clients. Search by the nouns and verbs of the requirement. Re-implementing an existing helper is the most common DRY violation an agent produces. - **Seams:** where external systems are called (HTTP, database, file system, clock, randomness, message bus) and whether they are already behind an abstraction the tests replace. - **Test coverage of the host:** which paths of the code you will change or move have tests — quote the test per path, and list the paths without one. Step 2 closes those gaps before anything is moved. Keep this short — enough to make the Step-2 decisions with evidence (`file:line`), no more. ### Step 2 — Design pass **List the responsibilities the change adds**, one line each, before thinking about files. "Add discount codes" is not one responsibility; it is *parse and validate a code*, *look up a code*, *compute the discount*, *apply it to an order*, *record the redemption*. The list is what makes placement decidable. **Place each responsibility** by asking in order, and stop at the first yes: 1. **Does a unit already exist whose job this is?** Reuse it, extend it inside its responsibility, or generalise it if the new use is the same knowledge. (DRY) 2. **Does it share the host's reason to change?** All three must hold: the same requirement or stakeholder would change both; it needs no dependency the host does not already have; the host's name still describes the host truthfully afterwards. Then extend the host. 3. **Otherwise it gets its own unit**, named after its responsibility, in the layer its concern belongs to (domain rule, I/O adapter, orchestration, presentation). The host delegates to it. (SRP, SoC) **A rule stays a rule when it needs data.** A check that decides whether something is allowed — *this code may be redeemed*, *this order may be cancelled* — is domain logic, even when the facts it decides on come from storage. The usual slip is a private method on the host that fetches those facts and decides on them in the same breath, which leaves the new rule inside the class the change was supposed to keep from growing. Split the two: the host (orchestration) fetches the facts and passes them in — plain values, not the repository — and the rule unit decides. Passing values also keeps the dependency pointing from orchestration to rules, which is what removes the circular import that otherwise argues for keeping the check in the host. **Heuristics that say a host is already full** — any one of them is reason enough to prefer a new unit for new behaviour, not a verdict on the existing code: | Signal | Rough threshold (heuristic, not law) | |---|---| | lines in the unit | a few hundred |
From CreativeCodersTeam/ai-store, Apache-2.0.
More from CreativeCodersTeam/ai-store
- 0.544score
dep-pr-cleanup
CreativeCodersTeam
Use when the user wants to clean up or consolidate the open pull requests of dependency bots such as Dependabot or Mend Renovate — finding bot PRs made…
SkillAFreshness: AClaude Code +9 - 0.529score
angular-dev
CreativeCodersTeam
Use only when the user themselves explicitly requests it by name — "angular-dev", "angular dev", "/angular-dev", "/cc-ai-angular:angular-dev" — for the gated…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-reviewer
CreativeCodersTeam
Use only when a structured Angular code review is explicitly requested by name — "angular-reviewer", "angular code review", or "angular review" — on an…
SkillBFreshness: BClaude Code +9 - 0.529score
implement-dev-plan
CreativeCodersTeam
Use only when explicitly requested by name — "implement-dev-plan", "implement dev plan", "/implement-dev-plan", "/cc-ai-dev:implement-dev-plan", "run…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-state
CreativeCodersTeam
Use when designing a store or state service in an Angular app, choosing between signals, RxJS, and NgRx, modeling state shape, writing selectors/derived…
SkillBFreshness: BClaude Code +9 - 0.529score
claude-md-downstream
CreativeCodersTeam
Use only when explicitly requested by name — "claude-md-downstream", "/claude-md-downstream", "/cc-ai-dev:claude-md-downstream", "run claude-md-downstream" —…
SkillBFreshness: BClaude Code +9 - 0.529score
create-dev-plan
CreativeCodersTeam
Use only when explicitly requested by name — "create-dev-plan", "create dev plan", "/create-dev-plan", "/cc-ai-dev:create-dev-plan", "start create-dev-plan" —…
SkillBFreshness: BClaude Code +9 - 0.529score
diagnose-bug
CreativeCodersTeam
Use only when explicitly requested by name — "diagnose-bug", "diagnose bug", "/diagnose-bug", "/cc-ai-dev:diagnose-bug", "run diagnose-bug" — or when another…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-components
CreativeCodersTeam
Use when creating Angular components, templates, or feature folders, configuring the router or lazy-loaded routes, building reactive or template-driven forms…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-tsdoc
CreativeCodersTeam
Use when writing or reviewing TSDoc/JSDoc comments on Angular/TypeScript code — public APIs, exported library symbols, component inputs/outputs — or when doc…
SkillBFreshness: BClaude Code +9 - 0.529score
auto-loop
CreativeCodersTeam
Use only when explicitly requested by name — "auto-loop", "auto loop", "/auto-loop", "/cc-ai-dev:auto-loop", "run auto-loop" — to run one goal as an…
SkillBFreshness: BClaude Code +9 - 0.529score
create-dev-spec
CreativeCodersTeam
Use only when explicitly requested by name — "create-dev-spec", "create dev spec", "/create-dev-spec", "/cc-ai-dev:create-dev-spec", "run create-dev-spec" —…
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 2, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/CreativeCodersTeam/ai-store
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from CreativeCodersTeam
- 0.544score
dep-pr-cleanup
CreativeCodersTeam
Use when the user wants to clean up or consolidate the open pull requests of dependency bots such as Dependabot or Mend Renovate — finding bot PRs made…
SkillAFreshness: AClaude Code +9 - 0.529score
auto-loop
CreativeCodersTeam
Use only when explicitly requested by name — "auto-loop", "auto loop", "/auto-loop", "/cc-ai-dev:auto-loop", "run auto-loop" — to run one goal as an…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-reviewer
CreativeCodersTeam
Use only when a structured Angular code review is explicitly requested by name — "angular-reviewer", "angular code review", or "angular review" — on an…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-dev
CreativeCodersTeam
Use only when the user themselves explicitly requests it by name — "angular-dev", "angular dev", "/angular-dev", "/cc-ai-angular:angular-dev" — for the gated…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-components
CreativeCodersTeam
Use when creating Angular components, templates, or feature folders, configuring the router or lazy-loaded routes, building reactive or template-driven forms…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-tsdoc
CreativeCodersTeam
Use when writing or reviewing TSDoc/JSDoc comments on Angular/TypeScript code — public APIs, exported library symbols, component inputs/outputs — or when doc…
SkillBFreshness: BClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get code-design running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
code-design skill. Agent Mart. https://agentmart.dev/skills/creativecodersteam-code-design (last updated 2026-10-24)