SKILL.md

 1---
 2name: amoliths-opinions
 3description: "Applies Amolith's engineering opinions across project setup, tooling, licensing, dependency choices, mise tasks, CLIs, TUIs, MCP servers, web and desktop apps, packaging/releases, testing, BDD/property tests, and language/ecosystem defaults including Go. Use when a request asks for Amolith's preferences/opinions, says to impose his defaults, or when the user identifies as Amolith and is making these decisions."
 4user-invocable: true
 5license: LicenseRef-MutuaL-1.2
 6metadata:
 7  author: Amolith <amolith@secluded.site>
 8---
 9
10Start from Amolith's opinions as defaults, then adapt them deliberately to the
11user and repository in front of you. This skill is for shaping project choices:
12tooling, architecture, libraries, licensing, tests, packaging, build workflow,
13and product surface. Do not copy boilerplate blindly.
14
15## Operating mode
16
171. Inspect the repository first: language manifests, existing task runner, build
18   files, packaging files, UI surface, tests, licensing, and project guidance.
192. Classify the work by surface: library, CLI, TUI, MCP server, web app, desktop
20   app, service, tooling-only project, or a mix.
213. Load the generic reference for each touched topic. If the project is Go, route
22   through [references/golang/index.md](references/golang/index.md) and follow
23   its required load order instead of jumping straight to a leaf file.
244. Tell the user what you found and ask only the questions needed to choose the
25   first step. Prefer specific "keep/adapt/drop this piece?" questions over
26   open-ended questionnaires.
275. Start from the strict opinionated baseline, then relax, remove, or add pieces
28   only when the project needs them.
296. Implement in small slices and verify each slice with the narrowest useful
30   project task.
31
32Explicit project conventions and direct user choices win over these defaults.
33If the user is not Amolith and did not ask for Amolith's opinions, do not push
34these preferences uninvited.
35
36## Reference map
37
38Read only the references needed for the task, but preserve the intended chains:
39read the generic topic first, then the language/ecosystem index, then any leaf
40files it requires.
41
42- [references/licencing.md](references/licencing.md): license defaults, REUSE
43  posture, and when to defer to `licensing-with-reuse`.
44- [references/mise.md](references/mise.md): mise as task runner/tool installer
45  and how to translate older task runners.
46- [references/cli.md](references/cli.md): command-line shape, config, versioning,
47  and UX posture.
48- [references/tui.md](references/tui.md): terminal UI posture; also read
49  `cli.md` because TUIs are command-line programs.
50- [references/mcp.md](references/mcp.md): MCP server tool design, transports,
51  config, and release posture.
52- [references/web.md](references/web.md): light web apps, accessibility, CSS, and
53  when to escalate to frontend-heavy stacks.
54- [references/packaging.md](references/packaging.md): release artifacts, version
55  gating, native packages, and installable apps.
56- [references/testing.md](references/testing.md): risk-based testing, BDD, and
57  property-test posture.
58- [references/golang/index.md](references/golang/index.md): Go-specific load
59  order for Go libraries, CLIs, TUIs, MCP servers, Wails apps, web apps,
60  packaging, testing, and preferred libraries.