litclaude-ai 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/LICENSE +21 -0
  3. package/README.md +369 -0
  4. package/README_ko-KR.md +374 -0
  5. package/RELEASE_CHECKLIST.md +165 -0
  6. package/bin/litclaude-ai.js +643 -0
  7. package/cover.png +0 -0
  8. package/docs/agents.md +67 -0
  9. package/docs/hooks.md +134 -0
  10. package/docs/lsp.md +40 -0
  11. package/docs/migration.md +209 -0
  12. package/docs/workflow-compatibility-audit.md +119 -0
  13. package/generate_cover.py +123 -0
  14. package/package.json +48 -0
  15. package/plugins/litclaude/.claude-plugin/plugin.json +25 -0
  16. package/plugins/litclaude/.lsp.json +13 -0
  17. package/plugins/litclaude/.mcp.json +9 -0
  18. package/plugins/litclaude/agents/boulder-executor.md +12 -0
  19. package/plugins/litclaude/agents/librarian-researcher.md +15 -0
  20. package/plugins/litclaude/agents/oracle-verifier.md +16 -0
  21. package/plugins/litclaude/agents/prometheus-planner.md +13 -0
  22. package/plugins/litclaude/agents/qa-runner.md +16 -0
  23. package/plugins/litclaude/agents/quality-reviewer.md +17 -0
  24. package/plugins/litclaude/bin/litclaude-hook.js +110 -0
  25. package/plugins/litclaude/bin/litclaude-hud.js +271 -0
  26. package/plugins/litclaude/bin/litclaude-lsp-doctor.js +15 -0
  27. package/plugins/litclaude/bin/litclaude-mcp.js +70 -0
  28. package/plugins/litclaude/commands/deep-interview.md +21 -0
  29. package/plugins/litclaude/commands/dynamic-workflow.md +36 -0
  30. package/plugins/litclaude/commands/lit-loop.md +40 -0
  31. package/plugins/litclaude/commands/lit-plan.md +35 -0
  32. package/plugins/litclaude/commands/litgoal.md +30 -0
  33. package/plugins/litclaude/commands/review-work.md +35 -0
  34. package/plugins/litclaude/commands/start-work.md +36 -0
  35. package/plugins/litclaude/hooks/hooks.json +54 -0
  36. package/plugins/litclaude/lib/context-pressure.mjs +25 -0
  37. package/plugins/litclaude/lib/hud-accent-palette.mjs +58 -0
  38. package/plugins/litclaude/lib/litgoal/cli.mjs +266 -0
  39. package/plugins/litclaude/lib/litgoal/ledger.mjs +16 -0
  40. package/plugins/litclaude/lib/litgoal/paths.mjs +7 -0
  41. package/plugins/litclaude/lib/litgoal/state.mjs +67 -0
  42. package/plugins/litclaude/lib/mutated-file-paths.mjs +63 -0
  43. package/plugins/litclaude/lib/start-work-continuation.mjs +99 -0
  44. package/plugins/litclaude/lib/workflow-check.mjs +83 -0
  45. package/plugins/litclaude/skills/ai-slop-remover/SKILL.md +142 -0
  46. package/plugins/litclaude/skills/comment-checker/SKILL.md +55 -0
  47. package/plugins/litclaude/skills/debugging/SKILL.md +70 -0
  48. package/plugins/litclaude/skills/debugging/references/methodology/00-setup.md +108 -0
  49. package/plugins/litclaude/skills/debugging/references/methodology/02-investigate.md +126 -0
  50. package/plugins/litclaude/skills/debugging/references/methodology/04-oracle-triple.md +106 -0
  51. package/plugins/litclaude/skills/debugging/references/methodology/05-escalate.md +69 -0
  52. package/plugins/litclaude/skills/debugging/references/methodology/06-fix.md +116 -0
  53. package/plugins/litclaude/skills/debugging/references/methodology/08-qa.md +94 -0
  54. package/plugins/litclaude/skills/debugging/references/methodology/09-cleanup.md +164 -0
  55. package/plugins/litclaude/skills/debugging/references/methodology/partial-runtime-evidence.md +228 -0
  56. package/plugins/litclaude/skills/debugging/references/runtimes/bundled-js-binary.md +415 -0
  57. package/plugins/litclaude/skills/debugging/references/runtimes/go.md +252 -0
  58. package/plugins/litclaude/skills/debugging/references/runtimes/native-binary.md +484 -0
  59. package/plugins/litclaude/skills/debugging/references/runtimes/node.md +260 -0
  60. package/plugins/litclaude/skills/debugging/references/runtimes/python.md +248 -0
  61. package/plugins/litclaude/skills/debugging/references/runtimes/rust.md +234 -0
  62. package/plugins/litclaude/skills/debugging/references/tools/ghidra.md +212 -0
  63. package/plugins/litclaude/skills/debugging/references/tools/playwright-cli.md +194 -0
  64. package/plugins/litclaude/skills/debugging/references/tools/pwndbg.md +263 -0
  65. package/plugins/litclaude/skills/debugging/references/tools/pwntools.md +265 -0
  66. package/plugins/litclaude/skills/deep-interview/SKILL.md +323 -0
  67. package/plugins/litclaude/skills/deep-interview/scripts/render_progress.py +193 -0
  68. package/plugins/litclaude/skills/frontend-ui-ux/SKILL.md +62 -0
  69. package/plugins/litclaude/skills/lit-loop/SKILL.md +144 -0
  70. package/plugins/litclaude/skills/lit-plan/SKILL.md +125 -0
  71. package/plugins/litclaude/skills/litgoal/SKILL.md +219 -0
  72. package/plugins/litclaude/skills/lsp/SKILL.md +63 -0
  73. package/plugins/litclaude/skills/programming/SKILL.md +106 -0
  74. package/plugins/litclaude/skills/programming/references/go/README.md +90 -0
  75. package/plugins/litclaude/skills/programming/references/go/backend-stack.md +641 -0
  76. package/plugins/litclaude/skills/programming/references/go/bootstrap.md +328 -0
  77. package/plugins/litclaude/skills/programming/references/go/bubbletea-v2.md +360 -0
  78. package/plugins/litclaude/skills/programming/references/go/cobra-stack.md +468 -0
  79. package/plugins/litclaude/skills/programming/references/go/concurrency.md +362 -0
  80. package/plugins/litclaude/skills/programming/references/go/data-modeling.md +329 -0
  81. package/plugins/litclaude/skills/programming/references/go/error-handling.md +359 -0
  82. package/plugins/litclaude/skills/programming/references/go/golangci-strict.md +236 -0
  83. package/plugins/litclaude/skills/programming/references/go/grpc-connect.md +375 -0
  84. package/plugins/litclaude/skills/programming/references/go/libraries.md +337 -0
  85. package/plugins/litclaude/skills/programming/references/go/one-liners.md +202 -0
  86. package/plugins/litclaude/skills/programming/references/go/sqlc-pgx.md +471 -0
  87. package/plugins/litclaude/skills/programming/references/go/testing.md +467 -0
  88. package/plugins/litclaude/skills/programming/references/go/type-patterns.md +298 -0
  89. package/plugins/litclaude/skills/programming/references/python/README.md +314 -0
  90. package/plugins/litclaude/skills/programming/references/python/async-anyio.md +442 -0
  91. package/plugins/litclaude/skills/programming/references/python/data-modeling.md +233 -0
  92. package/plugins/litclaude/skills/programming/references/python/data-processing.md +133 -0
  93. package/plugins/litclaude/skills/programming/references/python/error-handling.md +218 -0
  94. package/plugins/litclaude/skills/programming/references/python/fastapi-stack.md +316 -0
  95. package/plugins/litclaude/skills/programming/references/python/httpx2-optimization.md +360 -0
  96. package/plugins/litclaude/skills/programming/references/python/libraries.md +307 -0
  97. package/plugins/litclaude/skills/programming/references/python/one-liners.md +268 -0
  98. package/plugins/litclaude/skills/programming/references/python/orjson-stack.md +378 -0
  99. package/plugins/litclaude/skills/programming/references/python/pydantic-ai.md +285 -0
  100. package/plugins/litclaude/skills/programming/references/python/pyproject-strict.md +232 -0
  101. package/plugins/litclaude/skills/programming/references/python/textual-tui.md +201 -0
  102. package/plugins/litclaude/skills/programming/references/python/type-patterns.md +176 -0
  103. package/plugins/litclaude/skills/programming/references/rust/README.md +317 -0
  104. package/plugins/litclaude/skills/programming/references/rust/async-tokio.md +299 -0
  105. package/plugins/litclaude/skills/programming/references/rust/axum-stack.md +467 -0
  106. package/plugins/litclaude/skills/programming/references/rust/cargo-strict.md +317 -0
  107. package/plugins/litclaude/skills/programming/references/rust/clap-stack.md +409 -0
  108. package/plugins/litclaude/skills/programming/references/rust/concurrency.md +375 -0
  109. package/plugins/litclaude/skills/programming/references/rust/libraries.md +439 -0
  110. package/plugins/litclaude/skills/programming/references/rust/one-liners.md +291 -0
  111. package/plugins/litclaude/skills/programming/references/rust/proptest-insta.md +429 -0
  112. package/plugins/litclaude/skills/programming/references/rust/type-state.md +354 -0
  113. package/plugins/litclaude/skills/programming/references/rust/unsafe-discipline.md +250 -0
  114. package/plugins/litclaude/skills/programming/references/rust/zero-cost-safety.md +527 -0
  115. package/plugins/litclaude/skills/programming/references/rust-ub/README.md +289 -0
  116. package/plugins/litclaude/skills/programming/references/rust-ub/miri-sanitizers-loom.md +411 -0
  117. package/plugins/litclaude/skills/programming/references/rust-ub/ub-taxonomy.md +269 -0
  118. package/plugins/litclaude/skills/programming/references/typescript/README.md +195 -0
  119. package/plugins/litclaude/skills/programming/references/typescript/backend-hono.md +672 -0
  120. package/plugins/litclaude/skills/programming/references/typescript/bootstrap.md +199 -0
  121. package/plugins/litclaude/skills/programming/references/typescript/data-modeling.md +202 -0
  122. package/plugins/litclaude/skills/programming/references/typescript/error-handling.md +169 -0
  123. package/plugins/litclaude/skills/programming/references/typescript/tsconfig-strict.md +152 -0
  124. package/plugins/litclaude/skills/programming/references/typescript/type-patterns.md +196 -0
  125. package/plugins/litclaude/skills/programming/scripts/go/check-no-excuse-rules.sh +173 -0
  126. package/plugins/litclaude/skills/programming/scripts/go/new-project.py +138 -0
  127. package/plugins/litclaude/skills/programming/scripts/go/templates/.editorconfig +13 -0
  128. package/plugins/litclaude/skills/programming/scripts/go/templates/.golangci.yml +95 -0
  129. package/plugins/litclaude/skills/programming/scripts/go/templates/AGENTS.md.tmpl +24 -0
  130. package/plugins/litclaude/skills/programming/scripts/go/templates/README.md.tmpl +12 -0
  131. package/plugins/litclaude/skills/programming/scripts/go/templates/Taskfile.yml +40 -0
  132. package/plugins/litclaude/skills/programming/scripts/go/templates/ci.yml +37 -0
  133. package/plugins/litclaude/skills/programming/scripts/go/templates/config.go +24 -0
  134. package/plugins/litclaude/skills/programming/scripts/go/templates/gitignore +15 -0
  135. package/plugins/litclaude/skills/programming/scripts/go/templates/main.go.tmpl +22 -0
  136. package/plugins/litclaude/skills/programming/scripts/go/templates/run.go +15 -0
  137. package/plugins/litclaude/skills/programming/scripts/python/check-no-excuse-rules.py +687 -0
  138. package/plugins/litclaude/skills/programming/scripts/python/new-project.py +172 -0
  139. package/plugins/litclaude/skills/programming/scripts/python/new-script.py +116 -0
  140. package/plugins/litclaude/skills/programming/scripts/rust/check-no-excuse-rules.py +296 -0
  141. package/plugins/litclaude/skills/programming/scripts/rust/check-no-excuse-rules.sh +158 -0
  142. package/plugins/litclaude/skills/programming/scripts/rust/new-project.py +175 -0
  143. package/plugins/litclaude/skills/programming/scripts/typescript/check-no-excuse-rules.ts +282 -0
  144. package/plugins/litclaude/skills/programming/scripts/typescript/new-project.ts +177 -0
  145. package/plugins/litclaude/skills/refactor/SKILL.md +73 -0
  146. package/plugins/litclaude/skills/remove-ai-slops/SKILL.md +52 -0
  147. package/plugins/litclaude/skills/review-work/SKILL.md +331 -0
  148. package/plugins/litclaude/skills/rules/SKILL.md +66 -0
  149. package/plugins/litclaude/skills/start-work/SKILL.md +132 -0
  150. package/scripts/audit-plan-checkboxes.mjs +37 -0
  151. package/scripts/doctor.mjs +41 -0
  152. package/scripts/inspect-agent-tools.mjs +27 -0
  153. package/scripts/postinstall.mjs +50 -0
  154. package/scripts/qa-claude-plugin-smoke.sh +60 -0
  155. package/scripts/qa-portable-install.sh +136 -0
  156. package/scripts/validate-plugin.mjs +72 -0
@@ -0,0 +1,95 @@
1
+ version: "2"
2
+
3
+ run:
4
+ timeout: 5m
5
+ tests: true
6
+ modules-download-mode: readonly
7
+
8
+ linters:
9
+ default: none
10
+ enable:
11
+ - govet
12
+ - staticcheck
13
+ - errcheck
14
+ - errorlint
15
+ - nilerr
16
+ - nilnil
17
+ - bodyclose
18
+ - rowserrcheck
19
+ - sqlclosecheck
20
+ - contextcheck
21
+ - fatcontext
22
+ - copyloopvar
23
+ - intrange
24
+ - usetesting
25
+ - testifylint
26
+ - gofumpt
27
+ - goimports
28
+ - whitespace
29
+ - misspell
30
+ - unconvert
31
+ - unparam
32
+ - ineffassign
33
+ - dupword
34
+ - gocognit
35
+ - gocyclo
36
+ - funlen
37
+ - lll
38
+ - nestif
39
+ - dupl
40
+ - revive
41
+ - unused
42
+ - exhaustive
43
+ - gosec
44
+ - sloglint
45
+ - perfsprint
46
+ - prealloc
47
+ - makezero
48
+
49
+ linters-settings:
50
+ errcheck:
51
+ check-type-assertions: true
52
+ check-blank: true
53
+ errorlint:
54
+ errorf: true
55
+ asserts: true
56
+ comparison: true
57
+ gocognit:
58
+ min-complexity: 25
59
+ gocyclo:
60
+ min-complexity: 15
61
+ funlen:
62
+ lines: 90
63
+ statements: 60
64
+ lll:
65
+ line-length: 120
66
+ tab-width: 4
67
+ nestif:
68
+ min-complexity: 4
69
+ exhaustive:
70
+ default-signifies-exhaustive: false
71
+ check: [switch, map]
72
+ sloglint:
73
+ no-mixed-args: true
74
+ attr-only: true
75
+ no-global: all
76
+ context: scope
77
+ static-msg: true
78
+ no-raw-keys: true
79
+ key-naming-case: snake
80
+
81
+ formatters:
82
+ enable:
83
+ - gofumpt
84
+ - goimports
85
+
86
+ issues:
87
+ max-issues-per-linter: 0
88
+ max-same-issues: 0
89
+ exclude-rules:
90
+ - path: _test\\.go
91
+ linters: [funlen, lll, dupl, gosec]
92
+ - path: \\.pb\\.go$
93
+ linters: [all]
94
+ - path: \\.connect\\.go$
95
+ linters: [all]
@@ -0,0 +1,24 @@
1
+ # AGENTS.md
2
+
3
+ Go 1.23+ $short_purpose service.
4
+
5
+ ## Commands
6
+ - `task` — fmt + lint + test
7
+ - `task build` — produce ./bin/server
8
+ - `task ci` — full CI pipeline locally
9
+
10
+ ## Architecture
11
+ - `cmd/server/main.go` — entrypoint, ≤50 LOC
12
+ - `internal/cmd/` — root command, signal wiring
13
+ - `internal/api/` — HTTP handlers + middleware (gin)
14
+ - `internal/domain/` — smart-constructor types, no I/O
15
+ - `internal/store/` — DB layer (sqlc-generated, never hand-edited)
16
+ - `internal/config/` — env-driven Config
17
+ - `internal/obs/` — slog setup, observability
18
+
19
+ ## Conventions
20
+ - `slog` for all logs; never `log.*`, never `fmt.Println` in libs
21
+ - `context.Context` first arg for every public function with I/O
22
+ - Errors wrapped with `%w`; check with `errors.Is/As`
23
+ - 250 pure LOC ceiling per file
24
+ - Tests follow Given/When/Then; less mock the better
@@ -0,0 +1,12 @@
1
+ # $name
2
+
3
+ Bootstrapped with the `programming` skill's Go scaffold.
4
+
5
+ ## Run
6
+
7
+ ```bash
8
+ task # fmt + lint + test
9
+ task run # build + run server
10
+ ```
11
+
12
+ See `AGENTS.md` for architecture conventions.
@@ -0,0 +1,40 @@
1
+ version: '3'
2
+
3
+ vars:
4
+ BINARY: server
5
+ PKG: ./cmd/server
6
+
7
+ tasks:
8
+ default:
9
+ deps: [fmt, lint, test]
10
+
11
+ fmt:
12
+ cmds:
13
+ - gofumpt -w .
14
+ - goimports -w -local "$(go list -m)" .
15
+
16
+ lint:
17
+ cmds:
18
+ - golangci-lint run --timeout 5m ./...
19
+ - nilaway ./... || true
20
+
21
+ test:
22
+ cmds:
23
+ - go test -race -shuffle=on -count=1 ./...
24
+
25
+ test-cover:
26
+ cmds:
27
+ - go test -race -shuffle=on -count=1 -coverprofile=coverage.out ./...
28
+ - go tool cover -html=coverage.out -o coverage.html
29
+
30
+ build:
31
+ cmds:
32
+ - go build -trimpath -ldflags="-s -w" -o bin/{{.BINARY}} {{.PKG}}
33
+
34
+ run:
35
+ deps: [build]
36
+ cmds:
37
+ - ./bin/{{.BINARY}}
38
+
39
+ ci:
40
+ deps: [fmt, lint, test, build]
@@ -0,0 +1,37 @@
1
+ name: ci
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches: [main]
6
+
7
+ jobs:
8
+ ci:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ - uses: actions/setup-go@v5
13
+ with:
14
+ go-version: '1.23'
15
+ cache: true
16
+
17
+ - name: Install tools
18
+ run: |
19
+ go install mvdan.cc/gofumpt@latest
20
+ go install github.com/golangci/golangci-lint/cmd/golangci-lint@v2.0.0
21
+ go install go.uber.org/nilaway/cmd/nilaway@latest
22
+ go install github.com/go-task/task/v3/cmd/task@latest
23
+
24
+ - name: Format check
25
+ run: gofumpt -l . | (! grep .)
26
+
27
+ - name: Lint
28
+ run: golangci-lint run --timeout 5m ./...
29
+
30
+ - name: Nilaway
31
+ run: nilaway ./... || true
32
+
33
+ - name: Test
34
+ run: go test -race -shuffle=on -count=1 ./...
35
+
36
+ - name: Build
37
+ run: go build -trimpath ./...
@@ -0,0 +1,24 @@
1
+ // Package config loads typed config from env.
2
+ package config
3
+
4
+ import (
5
+ "time"
6
+
7
+ "github.com/caarlos0/env/v11"
8
+ )
9
+
10
+ type Config struct {
11
+ Host string `env:"HOST" envDefault:"0.0.0.0"`
12
+ Port int `env:"PORT" envDefault:"8080"`
13
+ ShutdownTimeout time.Duration `env:"SHUTDOWN_TIMEOUT" envDefault:"20s"`
14
+ LogLevel string `env:"LOG_LEVEL" envDefault:"info"`
15
+ LogFormat string `env:"LOG_FORMAT" envDefault:"json"`
16
+ }
17
+
18
+ func Load() (Config, error) {
19
+ var cfg Config
20
+ if err := env.Parse(&cfg); err != nil {
21
+ return Config{}, err
22
+ }
23
+ return cfg, nil
24
+ }
@@ -0,0 +1,15 @@
1
+ bin/
2
+ coverage.out
3
+ coverage.html
4
+ *.test
5
+ *.prof
6
+
7
+ .idea/
8
+ .vscode/
9
+ *.swp
10
+
11
+ .env
12
+ .env.local
13
+
14
+ *.pem
15
+ *.key
@@ -0,0 +1,22 @@
1
+ package main
2
+
3
+ import (
4
+ "context"
5
+ "log/slog"
6
+ "os"
7
+ "os/signal"
8
+ "syscall"
9
+
10
+ "$module/internal/cmd"
11
+ )
12
+
13
+ func main() {
14
+ ctx, stop := signal.NotifyContext(context.Background(),
15
+ syscall.SIGINT, syscall.SIGTERM)
16
+ defer stop()
17
+
18
+ if err := cmd.Execute(ctx); err != nil {
19
+ slog.Error("fatal", slog.Any("err", err))
20
+ os.Exit(1)
21
+ }
22
+ }
@@ -0,0 +1,15 @@
1
+ // Package cmd wires the root command and subcommands.
2
+ package cmd
3
+
4
+ import (
5
+ "context"
6
+ "log/slog"
7
+ "os"
8
+ )
9
+
10
+ // Execute runs the root command. Wire cobra/subcommands here.
11
+ func Execute(ctx context.Context) error {
12
+ slog.New(slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{Level: slog.LevelInfo}))
13
+ slog.InfoContext(ctx, "starting")
14
+ return nil
15
+ }