Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use before substantial DeepChat code, configuration, documentation, test, build, feature, issue, refactor, or architecture changes that need a durable spec. Skip trivial style fixes, small localized logic changes, routine docs edits, and simple bugs unless the developer asks for SDD. Classify substantial work into feature SDD, complex-bug issue spec, or architecture SDD; ask before optional GitHub issue sync unless the developer explicitly requested sync.
.claude/skills/thinkinaixyz-deepchat-sdd/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-17 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 129% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 76% | 0% |
Use this skill before substantial DeepChat source code, configuration, tests, docs, build scripts, release workflows, or project structure changes that need shared context or a durable decision record.
Skip SDD for trivial or tightly localized work unless the developer explicitly asks for it:
If the scope is unclear, inspect first and then ask whether SDD is wanted instead of creating artifacts by default.
Create one kebab-case folder per goal:
docs/features/<goal>/
docs/issues/<goal>/
design: docs/architecture/<goal>/
If one request contains multiple independent goals, split them into separate folders. Keep current architecture reference docs such as docs/architecture/agent-system.md in place; use subfolders for new architecture targets.
Treat a bug as SDD-worthy only when the root cause, blast radius, or fix path is complex enough that future developers benefit from the written record. For simple style defects or obvious local logic fixes, skip docs/issues/* and implement directly.
If a bug fix introduces a new user-visible capability, data migration, public contract, or cross-module redesign, classify the work as feature or architecture instead.
Feature and architecture goals use two artifacts:
spec.md: the normative RFC covering context, goals, non-goals, design, ownership, interfaces,data flow, invariants, compatibility, acceptance criteria, and open questions
plan.md: ordered implementation steps and live completion state, followed by whole-changereview, validation selection, cleanup, and quality gates
Do not create tasks.md. The plan is the only execution tracker.
Complex bug goals normally use one file:
spec.md: issue description, impact, root cause or suspected location, fix design, conciseimplementation checklist, validation outcome, and linked GitHub issue if one exists
Add plan.md only when a complex bug has multiple independently trackable implementation slices. Never add tasks.md.
Resolve every [NEEDS CLARIFICATION] marker before implementation. If the requested change is tiny, prefer skipping SDD over creating a token artifact.
Write spec.md as an RFC. It must explain enough implementation direction to constrain local code decisions without becoming a file-by-file task list. Acceptance criteria describe observable outcomes or independently verifiable contracts, not a test inventory.
Use plan.md as both plan and task tracker. Organize it into ordered checkbox sections whose steps are coherent, reviewable implementation slices. Include the objective, ownership boundary, essential guidance, dependencies when any, and completion condition. Reference the spec instead of repeating its design.
Do not sync GitHub issues by default. Issue sync is a follow-up record, not a gate for local SDD or implementation.
Only create or link a GitHub issue when the developer explicitly asks, or after asking and getting approval once the SDD artifacts are written or the implementation is complete.
Eligible work:
ordinary adjustments should not get issues.
If eligibility is unclear, ask the developer after the work is understood. Never self-authorize issue creation just because local gh is installed and authenticated.
When approved:
[feature] label.[bug] label.gh has permission.gh is unavailable or unauthorized, continue local-only and note that no GitHub issue wascreated only when sync was requested or approved.
When creating a PR for linked work, include Closes #NNN in the PR body so GitHub closes the issue automatically after merge.
without a separate task list or upfront test matrix.
shared/contracts/*api/*Clientretained spec.md if it is still a maintained contract.
checks may run at any time.
behavior, performance, security, naming, and maintenance cost.
only for qualifying behavior or contracts.
plan.md or the complex-bug spec checklist as coherent implementation slices land.scope, unless the developer already requested issue sync.
pnpm run format, pnpm run i18n, pnpm run lint, and pnpm run typecheck before handoffwhen app code, tests, i18n, or project docs changed.
Implementation-first means finishing the planned implementation before deciding whether to author new tests. It does not prohibit running existing tests, type checking, linting, builds, or manual checks during development.
New test code before implementation is exceptional. Use it only when the developer requests TDD, a minimal executable reproduction is required to understand a complex failure, or migration, concurrency, recovery, or protocol compatibility needs characterization of current behavior. Record the reason in one sentence in plan.md or the complex-bug spec.
After implementation, choose among:
contracts, persistence or migration, lifecycle or concurrency, recovery, security boundaries, or proven regressions.
Do not retain tests that mirror private control flow, assert incidental call order, duplicate the implementation through mocks, or exist only to increase coverage. Prefer no new test to a low-value implementation-coupled test.
deepchat-sdd-cleanup skill only when the developer explicitly asks to clean ororganize SDD documentation.
tasks.md files as legacy and migrate them only when that goal is activelyupdated. Merge remaining work into an existing plan.md; without one, keep a single-slice complex bug checklist in spec.md and create plan.md for feature, architecture, or multi-slice bug work. Do not perform a repository-wide migration during unrelated work.
contracts.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-17 | fail→pass | 17,465 | 14,184 | -19% | 1 | 1 | 0% | 2,567 | 4,133 | +61% | 0 | 0 | — |
case-18 | fail→pass | 10,380 | 2,824 | -73% | 1 | 1 | 0% | 1,641 | 2,275 | +39% | 0 | 0 | — |
case-09 | fail→pass | 15,293 | 3,145 | -79% | 1 | 1 | 0% | 2,222 | 2,187 | -2% | 0 | 0 | — |
case-15 | fail→pass | 5,938 | 2,635 | -56% | 1 | 1 | 0% | 944 | 2,164 | +129% | 0 | 0 | — |
case-01 | fail→fail | 31,618 | 7,305 | -77% | 1 | 1 | 0% | 6,207 | 2,162 | -65% | 0 | 0 | — |
case-02 | fail→fail | 23,114 | 8,971 | -61% | 1 | 1 | 0% | 3,357 | 2,194 | -35% | 0 | 0 | — |
case-03 | fail→fail | 2,144 | 6,759 | +215% | 1 | 1 | 0% | 288 | 2,088 | +625% | 0 | 0 | — |
case-16 | fail→pass | 10,735 | 5,456 | -49% | 1 | 1 | 0% | 1,502 | 2,650 | +76% | 0 | 0 | — |
case-04 | pass→pass | 8,757 | 3,333 | -62% | 1 | 1 | 0% | 1,249 | 2,330 | +87% | 0 | 0 | — |
case-05 | fail→pass | 8,140 | 4,364 | -46% | 1 | 1 | 0% | 1,155 | 2,442 | +111% | 0 | 0 | — |
case-06 | pass→pass | 4,930 | 3,484 | -29% | 1 | 1 | 0% | 700 | 2,333 | +233% | 0 | 0 | — |
case-07 | pass→pass | 10,452 | 3,643 | -65% | 1 | 1 | 0% | 1,550 | 2,344 | +51% | 0 | 0 | — |
case-08 | fail→pass | 13,677 | 3,567 | -74% | 1 | 1 | 0% | 2,101 | 2,320 | +10% | 0 | 0 | — |
case-10 | fail→pass | 11,893 | 4,425 | -63% | 1 | 1 | 0% | 1,837 | 2,491 | +36% | 0 | 0 | — |
case-11 | fail→pass | 10,273 | 3,811 | -63% | 1 | 1 | 0% | 1,468 | 2,403 | +64% | 0 | 0 | — |
case-12 | fail→fail | 7,191 | 1,521 | -79% | 1 | 1 | 0% | 1,179 | 1,988 | +69% | 0 | 0 | — |
case-13 | fail→fail | 4,337 | 1,790 | -59% | 1 | 1 | 0% | 600 | 2,006 | +234% | 0 | 0 | — |
case-14 | pass→pass | 4,972 | 2,602 | -48% | 1 | 1 | 0% | 871 | 2,167 | +149% | 0 | 0 | — |
case-19 | fail→pass | 11,069 | 5,266 | -52% | 1 | 1 | 0% | 1,694 | 2,572 | +52% | 0 | 0 | — |
case-20 | pass→pass | 11,350 | 4,239 | -63% | 1 | 1 | 0% | 1,722 | 2,432 | +41% | 0 | 0 | — |
case-21 | pass→pass | 9,106 | 4,135 | -55% | 1 | 1 | 0% | 1,456 | 2,436 | +67% | 0 | 0 | — |
case-22 | pass→pass | 4,434 | 2,441 | -45% | 1 | 1 | 0% | 629 | 2,093 | +233% | 0 | 0 | — |
case-23 | fail→pass | 12,916 | 6,972 | -46% | 1 | 1 | 0% | 2,071 | 2,641 | +28% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 21 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +48 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/9/2026 | +59% |
Other measured skills in the registry, with their headline benchmark lift.