mirror of
https://github.com/cole-maxwell1/dotfiles.git
synced 2026-10-27 16:32:49 -05:00
Compare commits
4
Commits
3fbf0ea3c8
...
8e91bb9945
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e91bb9945 | ||
|
|
dfbb071b35 | ||
|
|
a4fc747df2 | ||
|
|
71f73fccbc |
@@ -27,4 +27,8 @@ Strictly adhere to the following Conventional Commit specification rules:
|
||||
- `ops`: Infrastructure, CI/CD pipelines, deployment, or operational scripts.
|
||||
- `chore`: Maintenance tasks (e.g., updating `.gitignore`, repo setup).
|
||||
|
||||
### Message Body
|
||||
|
||||
The message body should provide a detailed description of the changes, including any relevant context or reasoning.
|
||||
|
||||
Provide ONLY the proposed commit message inside a raw code block, followed by a request for my approval.
|
||||
|
||||
@@ -24,12 +24,15 @@
|
||||
"which *": "allow",
|
||||
"ls *": "allow",
|
||||
"wc *": "allow",
|
||||
"head *": "allow",
|
||||
"tail *": "allow",
|
||||
// Go
|
||||
"go build *": "allow",
|
||||
"go test *": "allow",
|
||||
"go vet *": "allow",
|
||||
"go mod tidy": "allow",
|
||||
"go mod download": "allow",
|
||||
"gofmt *": "allow",
|
||||
// Node.js
|
||||
"npm ci": "allow",
|
||||
"npm test": "allow",
|
||||
@@ -40,6 +43,10 @@
|
||||
"npm ls *": "allow",
|
||||
"npm outdated": "allow",
|
||||
"npm audit *": "allow",
|
||||
"npm run test:unit": "allow",
|
||||
"npm run test:integration": "allow",
|
||||
"npm run test:e2e": "allow",
|
||||
"npm run type-check": "allow",
|
||||
"npx *": "ask",
|
||||
// Python
|
||||
"python -m unittest *": "allow",
|
||||
@@ -194,11 +201,11 @@
|
||||
},
|
||||
"lsp": true,
|
||||
"formatter": true,
|
||||
"model": "zai-coding-plan/glm-5.2",
|
||||
"small_model": "zai-coding-plan/glm-4.5-air",
|
||||
"model": "openai/gpt-5.6-terra",
|
||||
"small_model": "openai/gpt-5.6-luna",
|
||||
"agent": {
|
||||
"explore": {
|
||||
"model": "zai-coding-plan/glm-4.5-air",
|
||||
"model": "openai/gpt-5.6-luna",
|
||||
},
|
||||
},
|
||||
"share": "disabled",
|
||||
@@ -206,5 +213,9 @@
|
||||
"plugin": ["./plugins/ibmi-gate.ts", "@slkiser/opencode-quota@latest"],
|
||||
"provider": {
|
||||
"zai": {},
|
||||
"openai": {},
|
||||
},
|
||||
"experimental": {
|
||||
"disable_paste_summary": true,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
name: bash
|
||||
description: Shell scripting conventions (set -euo pipefail, quoting, shellcheck). Use when editing .sh or .bash files.
|
||||
---
|
||||
|
||||
# Bash Conventions
|
||||
|
||||
## Robustness
|
||||
- Begin scripts with `#!/usr/bin/env bash` and `set -euo pipefail`.
|
||||
- Pass `shellcheck` cleanly; treat its warnings as bugs.
|
||||
|
||||
## Quoting and expansion
|
||||
- Double-quote all variable expansions (`"$var"`, `"${array[@]}"`).
|
||||
- Prefer `[[ ]]` over `[ ]`; use arrays for argument lists rather than space-separated strings.
|
||||
- Avoid `eval`; do not parse `ls` output.
|
||||
|
||||
## Structure
|
||||
- Declare function-local variables with `local`.
|
||||
- Use `trap` to clean up temporary files and directories.
|
||||
- Use `printf` over `echo` for predictable output.
|
||||
- Prefer a `$TMPDIR`-based path over hardcoded `/tmp` literals.
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
name: csharp
|
||||
description: C# and .NET coding conventions. Use when reading, writing, or reviewing .cs, .razor, .csproj, or .sln files, or any .NET (C#) code.
|
||||
---
|
||||
|
||||
# C# / .NET Conventions
|
||||
|
||||
Follow the Microsoft [Common C# code conventions](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions) and [.NET naming guidelines](https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-guidelines). Match patterns already established in the target codebase.
|
||||
|
||||
## Structure
|
||||
- Use file-scoped namespaces (`namespace Example.Services;`).
|
||||
- Nullable reference types are enabled solution-wide; do not suppress warnings without cause.
|
||||
- Use `record` types for DTOs and data carriers.
|
||||
- Use `required` / `init`-only properties for immutable domain models.
|
||||
- Use primary constructors for services and repositories that take injected dependencies.
|
||||
- Mark classes `sealed` by default unless inheritance is intended.
|
||||
- Prefix interfaces with `I` (`IRenderer`, `IRepository`).
|
||||
|
||||
## Expressions
|
||||
- Use raw string literals (`""" ... """`) for multi-line SQL.
|
||||
- Use `[GeneratedRegex]` partial methods for regex.
|
||||
- Use collection expressions (`[]`, `[a, b]`).
|
||||
|
||||
## Async and cancellation
|
||||
- Every async method takes `CancellationToken ct = default` and honors it cooperatively (`ct.ThrowIfCancellationRequested()` in long loops).
|
||||
- Never drop the token when calling downstream async APIs.
|
||||
|
||||
## Logging
|
||||
- Inject `ILogger<T>` and use structured logging with named parameters:
|
||||
`_logger.LogInformation("Generated {Count} transactions", count);`
|
||||
|
||||
## Naming
|
||||
- `PascalCase` for types and members.
|
||||
- `_camelCase` for private fields.
|
||||
|
||||
## Testing
|
||||
- Use xUnit. Mirror the source structure under a `Tests/` directory with a `Tests` suffix on file names.
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
name: go
|
||||
description: Idiomatic Go conventions. Use when editing .go files or go.mod/go.sum.
|
||||
---
|
||||
|
||||
# Go Conventions
|
||||
|
||||
Write strictly idiomatic Go following standard formatting and best practices.
|
||||
|
||||
## Formatting and style
|
||||
- `gofmt` / `goimports` formatting is mandatory.
|
||||
- Follow [Effective Go](https://go.dev/doc/effective_go) and the [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments).
|
||||
|
||||
## Design
|
||||
- Accept `context.Context` as the first parameter on functions doing I/O or long work; honor cancellation.
|
||||
- Compose via small interfaces; accept interfaces, return structs.
|
||||
- Wire dependencies explicitly via constructor injection; avoid package-level mutable globals and DI frameworks.
|
||||
- Return errors explicitly; wrap with `%w` (`fmt.Errorf("do thing: %w", err)`); classify with `errors.Is` / `errors.As`; never discard errors.
|
||||
|
||||
## Testing
|
||||
- Write table-driven tests in `_test.go` using the standard `testing` package.
|
||||
- Use `t.Run` for subtests; report failures with `t.Errorf` / `t.Fatalf`.
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
name: htmx
|
||||
description: HTMX v2 progressive-enhancement and hypermedia patterns.
|
||||
---
|
||||
|
||||
# HTMX Conventions
|
||||
|
||||
Follow [HTMX](https://htmx.org) v2 and [Hypermedia Systems](https://hypermedia.systems/book/contents/) best practices.
|
||||
|
||||
## Philosophy
|
||||
- Treat the server as the source of truth; return HTML fragments, not JSON, for hypermedia interactions.
|
||||
- Prefer `hx-*` attributes over client-side JavaScript; reach for client JavaScript only when htmx cannot express the interaction.
|
||||
- Build progressively: ensure pages function without JavaScript, then enhance with htmx.
|
||||
|
||||
## Patterns
|
||||
- Target fragments with `hx-target` and swap with `hx-swap` (prefer `outerHTML` or `innerHTML` as appropriate).
|
||||
- Return partial templates or fragments from endpoints; treat partials as isolated components that receive data via the page model.
|
||||
- Use Out-of-Band Swaps (`hx-swap-oob`) to update multiple regions from a single response.
|
||||
- Handle errors with a 4xx/5xx partial or `hx-on::responseError`.
|
||||
|
||||
## Keep clean
|
||||
- Return semantic HTML from endpoints; avoid mixing `hx-*` attributes with conflicting client-side handlers.
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
name: primevue
|
||||
description: PrimeVue v4 component patterns and Tailwind integration. Use when writing or styling PrimeVue components.
|
||||
---
|
||||
|
||||
# PrimeVue v4 Conventions
|
||||
|
||||
Assume PrimeVue v4 is installed when answering Vue questions. Use the Composition API with `<script setup>`.
|
||||
|
||||
## Usage
|
||||
- Register components via the PrimeVue plugin or import per component.
|
||||
- Prefer official presets and theming over hand-rolled overrides.
|
||||
|
||||
## Tailwind integration
|
||||
- TailwindCSS is available; when needed, apply utility classes through the component passthrough (`pt`) or the unstyled/preset mechanism rather than overriding internal DOM.
|
||||
- Keep utility usage consistent with the project's styling layer.
|
||||
|
||||
## API detail
|
||||
- For component props, events, slots, and passthrough (`pt`) keys, fetch the PrimeVue LLM docs index on demand: `https://v4.primevue.org/llms/llms.txt`. Follow the relevant component link for the exact signature.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: python
|
||||
description: Python conventions (PEP 8, ruff, type hints). Use when editing .py files.
|
||||
---
|
||||
|
||||
# Python Conventions
|
||||
|
||||
## Style
|
||||
- Follow PEP 8; run `ruff check` and `ruff format` for linting and formatting.
|
||||
- Let ruff manage line length and import ordering; do not hand-format against it.
|
||||
|
||||
## Typing
|
||||
- Add type hints on all function signatures; prefer modern syntax (`list[int]`, `X | None`) on supported Python versions.
|
||||
- Use `dataclasses` (or Pydantic where validation is required) for structured data.
|
||||
- Prefer an explicit exception hierarchy over bare `except:`.
|
||||
|
||||
## Idioms
|
||||
- Prefer `pathlib.Path` over `os.path`.
|
||||
- Use f-strings for interpolation; use the `logging` module with structured handlers instead of `print` in libraries.
|
||||
- Prefer comprehensions and generator expressions over manual loops where readability is preserved.
|
||||
|
||||
## Testing
|
||||
- Use `unittest` (or `pytest` if the project adopts it); mirror the source layout under a `tests/` directory.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: typescript
|
||||
description: TypeScript conventions (Google style, strict mode, no any). Use when editing .ts or .tsx files, or tsconfig/jsconfig files.
|
||||
---
|
||||
|
||||
# TypeScript Conventions
|
||||
|
||||
Follow the [Google TypeScript Style Guide](https://google.github.io/styleguide/tsguide.html).
|
||||
|
||||
## Typing
|
||||
- `strict: true` in tsconfig; no implicit or explicit `any`.
|
||||
- Strictly type all variables, functions, and interfaces.
|
||||
- Prefer `unknown` over `any` when the type is genuinely unknown, then narrow.
|
||||
- Prefer discriminated unions and type narrowing over runtime checks.
|
||||
- Declare explicit return types on public and shared APIs.
|
||||
|
||||
## Style
|
||||
- Prefer `interface` for object shapes; use `type` for unions and mapped types.
|
||||
- Use `const` by default; `let` only when reassignment is required; never `var`.
|
||||
- Prefer async/await over raw `.then`/`.catch` chains.
|
||||
|
||||
## Project overrides
|
||||
A project's tsconfig or eslint config may relax rules (for example, disable `@typescript-eslint/no-explicit-any`); project configuration overrides these defaults.
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: vue
|
||||
description: Vue 3 (Composition API, script setup, Pinia, Vue Router) conventions. Use when editing .vue files.
|
||||
---
|
||||
|
||||
# Vue 3 Conventions
|
||||
|
||||
Use Vue 3 with the Composition API exclusively.
|
||||
|
||||
## Components
|
||||
- Use `<script setup lang="ts">`; avoid the Options API.
|
||||
- Type props with `defineProps<T>()` and emits with `defineEmits<T>()`.
|
||||
- Keep components focused and small; organize by feature directory.
|
||||
|
||||
## State and routing
|
||||
- Use Pinia setup stores (`defineStore('name', () => { ... })`) for shared state.
|
||||
- Cancel superseded fetches with `AbortController`; expose loading and error state from stores.
|
||||
- Use Vue Router with route guards for protected views.
|
||||
|
||||
## Reactivity
|
||||
- Prefer `ref` / `reactive` and `computed` over manual watchers.
|
||||
- Clean up side effects (timers, listeners, observers) in `onScopeDispose` or `onUnmounted`.
|
||||
|
||||
## API detail
|
||||
- For exact reactivity, built-in component, and compiler behavior, fetch the Vue LLM docs index on demand: `https://vuejs.org/llms.txt`. Follow the relevant guide link for the specific API.
|
||||
Reference in New Issue
Block a user