Skip to main content

write-specification

Rules for creating or updating a domain specification in docs/specifications/: location, hierarchy, content, package-local documentation, and scope. Use it whenever a change introduces or modifies important domain behavior, invariants, validation rules, protocol rules, security assumptions, state transitions, or externally observable semantics.

Quellinformationen

Repository
bisq-network/bisq2
Letzte Quellaktivität
29. September 2026 um 09:23
Erkannte Sprache von SKILL.md
Englisch
Sterne
321
Forks
125

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
write-specification
description
Rules for creating or updating a domain specification in docs/specifications/: location, hierarchy, content, package-local documentation, and scope. Use it whenever a change introduces or modifies important domain behavior, invariants, validation rules, protocol rules, security assumptions, state transitions, or externally observable semantics.
# Writing and Updating Specifications This skill extends the section "Specifications" of the project agent instructions (`AGENTS.md`). ### Writing and Updating Specifications Use `docs/specifications/` as the canonical location for domain specifications. Organize specifications hierarchically by domain and subdomain. Where practical, use domain terminology that corresponds naturally to the codebase, while omitting unnecessary structural package prefixes such as `bisq`. Example: ```text docs/ └── specifications/ ├── trade/ │ ├── protocol-validation.md │ ├── dispute-opening.md │ └── account-age.md ├── dao/ │ ├── block-validation.md │ ├── voting.md │ └── merit.md └── network/ ├── message-authentication.md └── data-propagation.md ``` Prefer small, focused specification files covering one coherent aspect of a domain rather than large documents covering an entire subsystem. A specification should primarily describe: * Required behavior * Domain rules and invariants * Important validation rules * Relevant state transitions * Exceptional and boundary cases * Security requirements where applicable * Protocol requirements where applicable * Backward-compatibility requirements where applicable * The rationale behind important or non-obvious requirements Keep specifications independent of implementation details where practical. Specifications should primarily describe **what** the system must do and **why**, rather than how particular classes, methods, or packages implement it. If an existing specification already covers the affected behavior, update it rather than creating overlapping or duplicate documentation. ### Package-Local Documentation Use package-local `*.md` files primarily for implementation-oriented documentation. As a general rule: * `docs/specifications/` describes **what the system must do and why**. * Package-local documentation describes **how a particular part of the implementation works**. Authoritative domain specifications should not depend unnecessarily on the current package, class, or module structure. Domain concepts often outlive implementation structures and should remain stable when code is refactored. Package-local documentation should reference the corresponding canonical specification when useful rather than duplicating it. ### Specification Scope and Structure Keep specifications narrowly scoped and easy to discover. Prefer several focused documents over one large specification. Each specification should cover one coherent domain concept, rule set, protocol aspect, or behavior. When a specification directory becomes large enough that discoverability suffers, add a small `README.md` that acts as an index and briefly describes the contained specifications and their relationships. Avoid defining the same rule in multiple specification files. Define it in the most appropriate specification and reference it elsewhere when necessary.
Auf GitHub ansehen