Przejdź do treści
Biblioteka skilli
Programowanie · Planowanie

software-design

/software-design

Pomaga zaplanować funkcję lub większy refaktoring, rozstrzygając interfejsy, własność stanu i granice modułów.

Repozytorium
skills ↗
Licencja
MIT
Ostatnia zmiana repozytorium
19.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
6
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 19.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Pomaga zaplanować funkcję lub większy refaktoring, rozstrzygając interfejsy, własność stanu i granice modułów.

Oryginalny opis (EN)

Plan a feature or substantial refactor, or assess a design's interfaces, state ownership, module boundaries, abstractions, and error handling. Use when implementation needs decisions that are still open, when the user asks how to approach or structure a change, how an internal module should expose its behavior, or whether an abstraction or dependency earns its place. Not for routine edits, executing an approved plan, or a question only about public API usage, file placement, or naming.

Jak działa

  1. Approach
  2. Gotchas
  3. Finish
  4. References
Sekcje z nagłówków SKILL.md, w oryginale · 37 linii, 425 słów
Podgląd SKILL.md
---
name: software-design
description: Plan a feature or substantial refactor, or assess a design's interfaces, state ownership, module boundaries, abstractions, and error handling. Use when implementation needs decisions that are still open, when the user asks how to approach or structure a change, how an internal module should expose its behavior, or whether an abstraction or dependency earns its place. Not for routine edits, executing an approved plan, or a question only about public API usage, file placement, or naming.
license: MIT
---

# Design software

Work from a representative user task toward the implementation, and compare the simplest viable design with the smallest useful alternative before changing structure.

## Approach

Start with the requested outcome, constraints, and decisions still open. Inspect relevant code, callers, and tests before judging an existing design. For new software, separate supplied requirements from assumptions. When executing an approved plan, check changed assumptions and proceed; reopen only decisions that new evidence undermines.

Establish the domain concepts and the observable success, failure, and unknown outcomes. Sketch the common usage, then trace state ownership, invariants, and lifecycle or transaction boundaries. Iterate between usage and ownership before settling file placement and names. Keep user-significant policy explicit while hiding coordination callers should not need to manage.

Compare the current or simplest design with the smallest useful alternative, including leaving the structure unchanged. Ask what callers must understand, where maintainers must navigate, and which changes require coordination. These are qualitative questions, not a complexity score. Preserve security, resource ownership, transaction, and compatibility boundaries when simplifying.

This workflow is complete on its own. When one decision needs more depth, use the focused skill for it when available, and pass along what is already established:

- `public-api-design` for developer-facing usage and compatibility, with the representative task and usage sketch.
- `codebase-structure` for placement and moves, with the settled ownership.
- `identifier-naming` for disputed vocabulary or renames, with the domain concepts.
- `docs-writing` when the user asks to record the decision as an ADR or proposal, with the decision, alternatives, and evidence.

## Gotchas

- A single implementation, long function, conditional, or unfamiliar convention is not evidence of a defect.
- One implementation can justify an interface when it isolates a dependency or makes behavior testable.
- Similar code can encode independent policies. Sharing it can couple changes that should stay separate.
- Catching every storage error and returning `null` turns an outage into "not found".
- Combining modules cannot make a database write and an email send commit atomically.

## Finish

Make the result proportional to the task: the decision, supporting evidence, costs, and unresolved questions, with demonstrated failures separated from tradeoffs and preferences. Identify the smallest useful implementation slice and the checks that would establish its behavior and contract. An assessment can end there. When implementation is requested, preserve behavior outside the agreed change and verify affected consumers and failure paths.

## References

- [Principles and tradeoffs](references/principles.md) when deciding whether an abstraction, dependency, or module boundary helps.
- [Decision examples](references/examples.md) for concrete comparisons and scoping a first implementation slice.
Pliki w paczce (6)
  • LICENSE 1 KB
  • SKILL.md 4 KB
  • agents/openai.yaml 1 KB
  • references/examples.md 3 KB
  • references/principles.md 4 KB
  • references/sources.md 2 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · gustavovalverde/skills100MIT
usetemi/skills90MIT

Migawka bazy z 28.10.2026 · wersja paczki c71d58612ef6 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 84design
    Rozstrzyga decyzje projektowe (typy, kontrakty, topologię pakietów, granice modułów) w rundach dyskusji przed planowaniem, zapisując je jako artefakty projektowe.
  • 100codebase-structure
    Rozstrzyga, gdzie powinien trafić kod: umieszczenie plików i modułów, dzielenie lub łączenie modułów, spłaszczanie lub zagnieżdżanie katalogów i przenoszenie plików przez granice modułów.
  • 90frontend-architecture
    Pomaga organizować bazę kodu frontendu: granice modułów, warstwy komponentów, własność stanu, kierunek przepływu danych i oddzielenie kodu funkcji od wspólnych prymitywów.
  • 100architecture-review
    Przegląda architekturę repozytorium z użyciem Ontoly Software Graph i MCP, wyjaśniając granice modułów, topologię pakietów, własność usług i ryzyka architektoniczne.
  • 100architecture-review
    Przegląda architekturę repozytorium z użyciem Ontoly Software Graph i MCP, wyjaśniając granice modułów, topologię pakietów, własność usług i ryzyka architektoniczne.
  • 95software-design-philosophy
    Ocenia projekt oprogramowania wg Ousterhouta: głębokość modułów, interfejsy, złożoność, nazewnictwo i obsługę błędów.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.