Skip to content

Commit c1f355e

Browse files
thedavidwengclaude
andcommitted
feat: align with CLI fleet standard
Validation errors now exit 7 as documented in JSON_SCHEMA.md (several paths previously exited 2). A single render helper replaces ~62 duplicated JSON/table output blocks; the 1706-line cli.go is split by command group. Adds the repo's first task runner (mise run check = fmt+build+test+lint+conventions), release-please (replacing git-cliff), dependabot, nfpm packages, and docs/adr/0002 recording the envelope and exit-code contract. AGENTS.md moves to the fleet template with the donor policy relocated to docs/donor-policy.md; .claude/skills and the leaked .cursor lazyweb skill are removed; stale ROADMAP entries and the duplicate docs/COMMANDS.md are cleaned up. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 958a29e commit c1f355e

53 files changed

Lines changed: 1859 additions & 1906 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/command-contract.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

.cursor/skills/lazyweb/SKILL.md

Lines changed: 0 additions & 57 deletions
This file was deleted.

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: gomod
4+
directory: "/"
5+
schedule:
6+
interval: weekly
7+
8+
- package-ecosystem: github-actions
9+
directory: "/"
10+
schedule:
11+
interval: weekly

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ jobs:
1111
uses: thedavidweng/cli-workflow-template/.github/workflows/go-ci.yml@main
1212
with:
1313
enable-coverage: true
14+
enable-conventions: true
1415
secrets: inherit

.github/workflows/mirror.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717

1818
steps:
1919
- name: Checkout
20-
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
20+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
2121
with:
2222
fetch-depth: 0
2323

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
12+
jobs:
13+
release-please:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v6
17+
with:
18+
fetch-depth: 0
19+
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
20+
21+
- uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4.4.1
22+
id: rp
23+
with:
24+
skip-github-release: true
25+
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
26+
27+
- name: Create GitHub Release
28+
if: ${{ steps.rp.outputs.release_created == 'true' }}
29+
env:
30+
GH_TOKEN: ${{ secrets.RELEASE_PLEASE_TOKEN }}
31+
TAG: ${{ steps.rp.outputs.tag_name }}
32+
run: |
33+
set -e
34+
VERSION="${TAG#v}"
35+
ESCAPED_VERSION=$(printf '%s' "${VERSION}" | sed 's/\./\\./g')
36+
NOTES=''
37+
if [ -f CHANGELOG.md ]; then
38+
NOTES=$(awk "/^## \[${ESCAPED_VERSION}\]/{found=1; next} /^## \[/{if(found) exit} found{print}" CHANGELOG.md || true)
39+
fi
40+
INSTALL=$(cat <<'EOF'
41+
# Installation
42+
43+
```bash
44+
# Homebrew (macOS)
45+
brew install --cask thedavidweng/tap/money
46+
47+
# Go (cross-platform)
48+
go install github.com/thedavidweng/money/cmd/money@VERSION_PLACEHOLDER
49+
```
50+
EOF
51+
)
52+
INSTALL="${INSTALL/VERSION_PLACEHOLDER/$TAG}"
53+
FULL_NOTES="${NOTES:-Release $TAG}
54+
55+
${INSTALL}"
56+
if gh release view "$TAG" &>/dev/null; then
57+
gh release edit "$TAG" --notes "${FULL_NOTES}"
58+
else
59+
gh release create "$TAG" \
60+
--title "$TAG" \
61+
--notes "${FULL_NOTES}"
62+
fi

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ website/dist/
2828

2929
# Local test artifacts
3030
.playwright-mcp/
31+
.scratch/
3132

3233
coverage.out
3334
*.test

.golangci.yml

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,52 @@
11
version: "2"
2+
23
linters:
4+
default: none
35
enable:
46
- errcheck
57
- govet
68
- ineffassign
79
- staticcheck
810
- unused
11+
- gocritic
912
- misspell
13+
- unconvert
14+
- prealloc
15+
- unparam
16+
- godox
17+
- whitespace
18+
- nolintlint
19+
settings:
20+
errcheck:
21+
check-type-assertions: true
22+
gocritic:
23+
enabled-tags:
24+
- diagnostic
25+
- performance
26+
- style
27+
disabled-checks:
28+
- hugeParam
29+
- rangeValCopy
30+
- paramTypeCombine
31+
- nestingReduce
32+
- unnamedResult
33+
misspell:
34+
locale: US
35+
nolintlint:
36+
require-explanation: true
37+
require-specific: true
1038
exclusions:
1139
presets:
1240
- std-error-handling
13-
paths:
14-
- third_party
15-
- vendor
16-
- testdata
17-
- website
41+
42+
formatters:
43+
enable:
44+
- gofmt
45+
- goimports
46+
settings:
47+
goimports:
48+
local-prefixes:
49+
- github.com/thedavidweng/money
50+
51+
run:
52+
timeout: 5m

.goreleaser.yaml

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,19 @@ archives:
2525
- goos: windows
2626
formats: [zip]
2727

28+
nfpms:
29+
- package_name: money
30+
vendor: thedavidweng
31+
maintainer: thedavidweng <noreply@github.com>
32+
homepage: https://github.com/thedavidweng/money
33+
description: "Local-first personal finance backend for agents and power users"
34+
license: Apache-2.0
35+
formats:
36+
- deb
37+
- rpm
38+
- apk
39+
bindir: /usr/bin
40+
2841
checksum:
2942
name_template: "checksums.txt"
3043
algorithm: sha256
@@ -50,17 +63,7 @@ sboms:
5063
- "${artifact}.spdx.json"
5164

5265
changelog:
53-
sort: asc
54-
filters:
55-
exclude:
56-
- "^docs:"
57-
- "^test:"
58-
- "^ci:"
59-
- "^chore:"
60-
- "^style:"
61-
- "^refactor:"
62-
- Merge pull request
63-
- Merge branch
66+
disable: true
6467

6568
release:
6669
github:

.release-please-manifest.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ ".": "0.3.1" }

0 commit comments

Comments
 (0)