Przejdź do treści
Biblioteka skilli
Programowanie · Budowanie i kod

implement

/implement

Implementuje przypadki użycia i naprawia błędy w aplikacji webowej w Go: zapytania sqlc, serwisy, walidacja formularzy, handlery net/http, widoki templ z htmx i trasy.

Licencja
Apache-2.0
Ostatnia zmiana repozytorium
25.09.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
1
Skrypty
0
Komentarze HTML
1
Adresy URL w SKILL.md
0
Przestarzałość

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

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co sprawdzić przed instalacją
  • SKILL.md zawiera komentarze HTML (1). Nie widać ich w podglądzie Markdown, a model je czyta.

Co robi i kiedy

Implementuje przypadki użycia i naprawia błędy w aplikacji webowej w Go: zapytania sqlc, serwisy, walidacja formularzy, handlery net/http, widoki templ z htmx i trasy.

Wyzwalacze z opisu

implement a use casefix a bugbuild the UIcreate an endpointwrite a handlerwrite a page
Oryginalny opis (EN)

Implements use cases and fixes bugs in a Go web application: sqlc queries, services, form validation, net/http handlers, templ views with htmx, and routes. Use when the user asks to "implement a use case", "fix a bug", "build the UI", "create an endpoint", "write a handler", "write a page", or mentions Go implementation, templ, htmx, sqlc, or full-stack Go implementation.

Jak działa

  1. Instructions
  2. DO NOT
  3. Nexa Rules Gate
  4. Worktree Gate
  5. Project Readiness Gate
  6. DoR Check
  7. Tracking
  8. Test Data Conventions
  9. Workflow
  10. Post-Implementation Tracking
Sekcje z nagłówków SKILL.md, w oryginale · 134 linii, 1 314 słów
Podgląd SKILL.md
---
name: implement
description: >
  Implements use cases and fixes bugs in a Go web application: sqlc queries, services, form
  validation, net/http handlers, templ views with htmx, and routes. Use when the user asks to
  "implement a use case", "fix a bug", "build the UI", "create an endpoint", "write a handler",
  "write a page", or mentions Go implementation, templ, htmx, sqlc, or full-stack Go
  implementation.
---

# Implement Use Case

## Instructions

Implement $ARGUMENTS in Go: `net/http` handlers, `templ` views with `htmx`, and `sqlc` for data
access. $ARGUMENTS can be a use case (`UC-XXX`), a technical task (`TT-XXX`), or a bug fix
(`BUG-XXX`). Write unit tests alongside the implementation. Integration tests (`/integration-test`) and
e2e tests (`/playwright-test`) are separate skills.

Use the context7 MCP server to look up templ, htmx, sqlc, and pgx documentation when needed.

## DO NOT

- Create integration or e2e tests (use dedicated testing skills instead)
- Write SQL strings in Go code — every query lives in `db/queries/*.sql` and is generated by sqlc
- Edit generated code (`internal/db/`, `*_templ.go`) — change the source and regenerate
- Put business logic in handlers or `.templ` files — handlers parse, validate, call the service, and render
- Write JavaScript beyond htmx attributes unless the design artifact requires client behaviour htmx cannot express
- Add a dependency the standard library, templ, htmx, sqlc, or pgx already covers
- Introduce an interface with a single implementation — the only accepted exception is sqlc's `db.Querier`, which unit tests fake
- Make implementation decisions without documenting their provenance (EXPLICIT vs INFERRED)
- Over-engineer — implement only what the specification requires. No speculative abstractions, unnecessary indirection, premature generalisation, or features not in the spec. Three similar lines of code are better than a premature abstraction. If a simple approach satisfies the requirement, use it.

## Nexa Rules Gate

Read and follow `${CLAUDE_PLUGIN_ROOT}/shared/readiness/NEXA_RULES_GATE.md`.

## Worktree Gate

Read and follow `${CLAUDE_PLUGIN_ROOT}/shared/readiness/WORKTREE_GATE.md`.

## Project Readiness Gate

Read and follow `${CLAUDE_PLUGIN_ROOT}/shared/readiness/PROJECT_READINESS.md`.

This gate checks that cross-cutting infrastructure (middleware, structured logging, security headers,
environment configuration, migrations) exists before use case implementation begins. It applies to
`UC-XXX` items only — `TT-XXX` and `BUG-XXX` items skip this gate.

Do not proceed with implementation until all items pass or the user explicitly waives failures.

## DoR Check

- For **UC-XXX**: Read and follow `${CLAUDE_PLUGIN_ROOT}/shared/readiness/DEFINITION_OF_READY.md`.
- For **TT-XXX**: Read and follow `${CLAUDE_PLUGIN_ROOT}/shared/readiness/DEFINITION_OF_READY_TT.md`.
- For **BUG-XXX**: Read and follow `${CLAUDE_PLUGIN_ROOT}/shared/readiness/DEFINITION_OF_READY_BUG.md`.

Do not proceed with implementation until all items pass or the user explicitly waives failures.

## Tracking

Read and follow the **Before Implementation** steps in `${CLAUDE_PLUGIN_ROOT}/shared/tracking/TRACKING.md`.

## Test Data Conventions

- Use only `example.com` for test emails and accounts (e.g., `user@example.com`, `admin@example.com`). This is an IANA-reserved domain that will never route real mail.

## Workflow

1. Read the specification:
    - For **UC-XXX**: Read the use case specification from `docs/use_cases/`
    - For **TT-XXX**: Read the technical task specification from `docs/technical_tasks/`
    - For **BUG-XXX**: Read the bug report from `docs/bugs/`
2. Read the entity model from `docs/entity_model.md` (if applicable)
3. Read the design artifact from `docs/designs/` (if it exists for this UC). When a design artifact exists, the implementation must match the specified screens, layout, components, states, and navigation flow.
4. Read project design rules from `docs/designs/DESIGN_RULES.md` (if it exists). These are project-specific constraints — e.g., shared layout elements (header, footer, sidebar), mandatory components, or navigation patterns — that every implementation must follow. Missing a shared element specified in design rules is a defect.
5. Check existing code for patterns and conventions — read `internal/web/routes.go`, `internal/web/layout/layout.templ`, and at least one existing `internal/<feature>/` package before writing a new one
6. **i18n Detection** — check the project's `CLAUDE.md` for the marker `<!-- NEXA_I18N_CONFIGURED -->`,
   then look for an existing translation setup (`internal/i18n/`, message catalogs,
   `golang.org/x/text/message`, `go-i18n` in `go.mod`). If one exists, every user-facing string in
   this implementation — including validation messages — MUST go through it (`/setup-i18n`:
   `i18n.T(ctx, "namespace.key")` in templ and handlers), and new keys go into **all** locale
   catalogs. If none exists, write plain strings.
7. Write the queries:
    - Add named queries to `db/queries/<entity>.sql` (`-- name: ListItems :many`, `:one`, `:exec`)
    - Every table and column must already exist in `db/migrations/` — if not, stop: the schema
      belongs to `/db-migration`, which runs before delivery
    - Run `go tool templ generate && sqlc generate`
8. Implement the service in `internal/<feature>/service.go`:
    - A struct holding `db.Querier`; one method per use case operation
    - Business rules (`BR-XXX`) live here, with a comment naming the rule
    - Return domain errors (`var ErrNotFound = errors.New(...)`) that handlers map to status codes
9. Implement the form in `internal/<feature>/form.go`:
    - A struct per form, parsed from `r.PostForm`
    - `func (f CreateItemForm) Validate() map[string]string` returning field -> message (a message ID when i18n is active; the view translates it); empty map means valid
    - Mirror each server rule with an HTML5 attribute in the view (`required`, `maxlength`, `type="email"`, `pattern`) — client-side validation is a convenience, the server check is the authority
10. Implement the handler in `internal/<feature>/handler.go`:
    - Methods with the `http.HandlerFunc` signature; read path values with `r.PathValue("id")`
    - Mutations: `r.ParseForm()` -> `Validate()` -> on errors re-render the form fragment with the
      submitted values and field errors, status `422` -> otherwise call the service. htmx swaps
      the `422` body only because the layout's `htmx-config` enables it (`/setup-web-middleware`);
      if the project's layout lacks that `responseHandling` entry, add it
    - Render a full page for normal requests and only the fragment when `r.Header.Get("HX-Request") == "true"`
    - After a successful htmx mutation, respond with the updated fragment or `HX-Redirect`; after a plain form post, `http.Redirect` with `303`
    - Map service errors: not found -> `404`, forbidden -> `403`, anything else -> log with `slog` and `500`
    - Read the signed-in user with `auth.FromContext(r.Context())` — never read the cookie or the session store again
11. Implement the views in `internal/<feature>/views.templ`:
    - Pages wrap content in the shared layout from package `internal/web/layout` — never import `internal/web` from a feature (import cycle)
    - Every htmx target is its own templ component so handlers can render it alone
    - Loading state: `hx-indicator` on the triggering element
    - Error state: field errors next to their inputs, a summary for non-field errors
    - Empty state: an explicit component when a list has no rows
    - When a design artifact exists, match the specified layout, components, states, and navigation
    - When project design rules exist (read in step 4), enforce every rule — e.g., include shared layout elements, follow mandatory navigation patterns, and apply required brand guidelines
    - Use labelled inputs (`<label for>`), semantic headings, and buttons for actions — the E2E tests select by role and label
    - Run `go tool templ generate`
12. Register routes in `web.NewHandler` (`internal/web/routes.go`) with method patterns (`mux.HandleFunc("POST /items", h.Create)`).
    Every route requires a signed-in user by default. When the spec restricts a route to a role, wrap it
    on the registration line: `mux.Handle("POST /items", auth.RequireRole("ADMIN")(http.HandlerFunc(h.Create)))`.
    Add a path to `auth.PublicPaths` only when the spec makes it reachable without signing in.
13. Write unit tests (no build tag) next to the code:
    - `form_test.go` — table-driven `Validate()` tests: each valid input passes, each invalid input produces the expected field error
    - `service_test.go` — a fake struct implementing `db.Querier` (embed `db.Querier` and override only the methods used); assert business rules and returned errors
    - `handler_test.go` — `httptest.NewRecorder` + the handler wired to a service with the fake: status codes, `422` with field errors on invalid input, fragment-only body when `HX-Request: true`, full layout otherwise, redirect target on success
    - `views_test.go` — render the component into a `bytes.Buffer` with `Render(context.Background(), &buf)` and assert the text the design specifies (empty-state message, error messages)
    - Run `go test ./...` to verify they pass
14. Run the `/code-quality` skill
15. Verify the implementation builds with `go tool templ generate && sqlc generate && go build ./... && go vet ./...`
16. Document implementation decisions in a `DECISIONS.md` file (or in the PR description):
    - For each non-trivial decision made during implementation, record:
      - **Decision:** What was decided
      - **Provenance:** EXPLICIT (from spec/requirements) or INFERRED (agent reasoning)
      - **Source/Reasoning:** Quote the source document or explain the reasoning
    - INFERRED decisions are candidates for stakeholder review before merge

## Post-Implementation Tracking

Read and follow the **After Implementation** steps in `${CLAUDE_PLUGIN_ROOT}/shared/tracking/TRACKING.md`.

## Resources

- Use the context7 MCP server for templ, htmx, sqlc, and pgx documentation

Wersje

RepozytoriumWynikLicencja
Ta strona · nexadevapp/nexa-claude-skills-marketplace100Apache-2.0
ericrisco/rsc-harness100MIT
michielvandermeer/skills100MIT
rossumai/claude-marketplace100MIT
yonatangross/orchestkit100MIT
trevhud/rote100Apache-2.0
andymai/brepjs100Apache-2.0
boshu2/agentops100Apache-2.0
ShieldBattery/ShieldBattery100MIT

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

Pobrania w ostatnich 30 dniach: 0 · ranking

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

Podobne skille

  • 95templ-htmx
    Buduje interaktywne aplikacje oparte na hipermediach z templ i HTMX: dynamiczne interfejsy, aktualizacje w czasie rzeczywistym i interakcje AJAX.
  • 100playwright-test
    Tworzy testy end-to-end w przeglądarce dla aplikacji webowej w Go (templ i htmx) przez Playwright for Go, jako testy go test za tagiem budowania e2e, obejmujące pełne ścieżki użytkownika.
  • 95goldr-app
    Tworzy i rozwija aplikacje w frameworku Goldr dla Go: trasy, układy, szablony templ, formularze, CSRF i HTMX.
  • 100go-tool
    Zarządza zależnościami narzędzi Go przez dyrektywę tool (Go 1.24+), na przykład sqlc, moq, templ, swag, stringer i enumer jako powtarzalne zależności.
  • 100htmx
    Pomaga używać htmx w aplikacjach Go z templ: atrybuty hx-*, strategie swap, triggery, aktualizacje OOB, SSE, WebSockety, formularze, przekierowania, debounce i integracja z handlerami.
  • 100integration-test
    Tworzy testy integracyjne w Go dla handlerów net/http, serwisów i zapytań sqlc na prawdziwej bazie PostgreSQL uruchamianej przez testcontainers-go.

Uwagi i zgłoszenia

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