Claude Code Plugins

Community-maintained marketplace

Feedback

Develop the go-lcpd daemon/tools (Go). Follow repo principles (robustness, TDD, lint) and validate with make test/lint/gen.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name lcp-go-lcpd
description Develop the go-lcpd daemon/tools (Go). Follow repo principles (robustness, TDD, lint) and validate with make test/lint/gen.
metadata [object Object]

You are working in the go-lcpd/ module (the reference LCP daemon and tools).

Scope

  • Module: go-lcpd/
  • Primary behavior sources:
    • Protocol spec: docs/protocol/protocol.md
    • WYSIWID design doc (when present): go-lcpd/spec.md (see $lcp-wysiwid-spec)

Development principles

These are the consolidated rules that previously lived in go-lcpd/AGENTS.md:

  1. If go-lcpd/spec.md exists, implementation MUST match the behavior defined there.
  2. Design for robustness. Keep modules aligned with SRP.
  3. Use a ubiquitous language. Keep terminology consistent across code and docs.
  4. Test-first. Prefer TDD when changing behavior.
  5. Run golangci-lint v2. When changing code, run make lint and fix findings.
  6. Use cmp.Diff in tests. Compare expected vs actual with github.com/google/go-cmp/cmp.Diff.
  7. Make logging diagnosable. Logging level MUST be configurable (for example via env vars).
  8. Prefer lnd libraries. Use lnd-provided APIs/libraries before re-implementing.

Go documentation and commenting (house style)

  • Every function should have a comment describing purpose and assumptions.
  • Function comments start with the function name (Effective Go), use complete sentences.
  • Comments in code should explain intent, not restate the obvious.

Workflow

  1. Locate the relevant codepath under go-lcpd/internal/ or go-lcpd/tools/.
  2. If changing protobufs, edit the .proto sources and regenerate instead of hand-editing generated code.
  3. Prefer small, testable changes; add/update unit tests and integration tests as needed.
  4. If you are authoring/changing go-lcpd/spec.md, use $lcp-wysiwid-spec.

Validation (run from go-lcpd/)

  • make gen (only if protobuf / generated code changes)
  • make test
  • make lint
  • make fmt

Optional integration test (regtest):

  • LCP_ITEST_REGTEST=1 go test ./itest/e2e -run Regtest_LNDPayment -count=1 -v