modular-go
14
总安装量
14
周安装量
#23155
全站排名
安装命令
npx skills add https://github.com/psiace/skills --skill modular-go
Agent 安装分布
codex
13
opencode
13
gemini-cli
12
github-copilot
12
amp
12
kimi-cli
12
Skill 文档
modular-go
Concise guidance for designing Go packages that stay small, focused, and easy to evolve.
Purpose and Triggers
- Use for Go package design, refactoring, and code review.
- Focus on API boundaries, state modeling, and flow decomposition.
- Use when deciding the right abstraction level: local helper, utility package, manager, or builder.
- Prefer explicit boundaries over convenience exports.
Decision Order
- Keep public surface minimal and intentional.
- One package, one responsibility.
- Prefer stateless functions; if state is needed, keep transitions one-way.
- Separate orchestration from capability methods; keep handlers thin and I/O-focused.
- Expose extra public symbols only as stable domain contracts.
- Choose the smallest useful abstraction (
xxxutil,XXXManager,Builder) based on reuse, lifecycle, and parameter complexity. - Prefer context-driven lifecycle control; expose
Close()only for external contracts.
Workflow
- Define one package responsibility.
- Expose one obvious primary entry point (type, interface, or function).
- Keep helpers local by default; extract to
xxxutilonly for real cross-package reuse. - Keep transport handlers focused on protocol mapping and delegate behavior to injected dependencies.
- Compose orchestration from focused functions, with short stage-intent comments.
- Re-check against the reference checklists before merge.
Topics
| Topic | Guidance | Reference |
|---|---|---|
| Module Boundary | Expose minimal API and separate deep vs wide interfaces | references/module-boundary.md |
| State Flow | Use stateless functions and one-shot state objects | references/state-flow.md |
| Orchestration | Use a single public executor and internal helpers | references/orchestration.md |
| Review Checklist | Run a fast architecture sanity check before merge | references/review-checklist.md |
References
- Reference files are intentionally short and task-focused.
- Source links are listed in each reference file frontmatter
urls.