Skip to content

Commit fe53f3f

Browse files
authored
chore: onboard api-creator as a Lisa project (Bun) (#4)
* chore: migrate from npm to bun Replace npm with Bun as the package manager. Delete package-lock.json and generate bun.lock. Update .gitignore for coverage and Lisa backups. 🤖 Generated with Claude Code Co-Authored-By: Claude * feat: add Lisa project governance templates Install @codyswann/lisa and apply TypeScript stack templates: - ESLint flat config with local overrides for initial onboarding - Prettier, commitlint, husky hooks (pre-commit, pre-push, commit-msg) - Vitest config with coverage thresholds - TypeScript strict config extending Lisa base - Knip dead code detection - ast-grep structural search - GitHub Actions: CI quality workflow, Claude workflows, dependabot - Reusable publish-to-npm workflow with OIDC 🤖 Generated with Claude Code Co-Authored-By: Claude * fix: resolve ESLint and Prettier violations for Lisa compliance - Fix unused variables (prefix with _ or remove) - Auto-fix prefer-template, prefer-const, brace-style - Apply Prettier formatting across all source and test files - Fix irregular whitespace in JSDoc comment 🤖 Generated with Claude Code Co-Authored-By: Claude * ci: update release workflow for Bun and reusable publish - Replace npm with Bun for install/build/test steps - Add oven-sh/setup-bun@v2 step - Chain the reusable publish-to-npm.yml workflow instead of inline OIDC publish logic 🤖 Generated with Claude Code Co-Authored-By: Claude * fix: add lint/format/knip binaries as direct devDependencies Lisa's postinstall overwrites knip.json (copy-overwrite), which removes project-specific ignoreBinaries entries. Instead of fighting the config, declare eslint, prettier, knip, and @ast-grep/cli as direct devDependencies so knip can resolve them. Also re-add coverage/ to .prettierignore after Lisa overwrite. 🤖 Generated with Claude Code Co-Authored-By: Claude * fix: conform codebase to Lisa standards with zero relaxed rules - Reset eslint.config.local.ts to empty (test-only overrides for jsdoc, duplicate strings, publicly-writable-directories, max-lines) - Reset eslint.thresholds.json to defaults (complexity 10, 300 lines, 75/fn) - Reset vitest.thresholds.json to 70/70/70/70 coverage - Remove globals:true from vitest.config.local.ts, add coverage exclusions for src/types (pure interfaces), src/recorder (Playwright), src/cli.ts - Replace .gitignore with Lisa template + project-specific entries - Rename test/ → tests/ to match Lisa convention Split 5 oversized files (all now ≤300 lines): - cli-project-emitter.ts → + auth-emitter, commands-emitter, graphql-commands-emitter, cli-entrypoint-emitter - client-emitter.ts → + client-method-emitter - type-inferrer.ts → + property-inferrer - project-runner.ts → + endpoint-command-builder - commands/test.ts → + test-helpers Deduplicate singularize/camelToKebab/kebabToCamel into utils/naming.ts. Fix all ESLint violations: functional/immutable-data (array-literal patterns), functional/no-let, jsdoc/*, code-organization, sonarjs/*, no-param-reassign. Add 338 tests across 31 files (up from 66 tests / 9 files). Coverage: 89% stmts, 77% branches, 92% functions, 90% lines. 🤖 Generated with Claude Code Co-Authored-By: Claude * fix: address CodeRabbit review feedback on CI workflows - Update claude-ci-auto-fix.yml workflow trigger to match renamed '🔍 CI Quality Checks' workflow name - Remove broken manual OIDC token wiring from publish-to-npm.yml; npm CLI v11.5.1+ handles OIDC exchange automatically via `npm publish --provenance` 🤖 Generated with Claude Code Co-Authored-By: Claude --------- Co-authored-by: Cody Swann <cody.swann@gmail.com>
1 parent 011f1ca commit fe53f3f

135 files changed

Lines changed: 16213 additions & 11207 deletions

File tree

Some content is hidden

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

.claude/rules/PROJECT_RULES.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Project Rules
2+
3+
Project-specific rules and guidelines that apply to this codebase.
4+
5+
Rules in `.claude/rules/` are automatically loaded by Claude Code at session start.
6+
Add project-specific patterns, conventions, and requirements below.
7+
8+
---
9+

.claude/settings.json

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"env": {
3+
"BASH_DEFAULT_TIMEOUT_MS": "1800000",
4+
"BASH_MAX_TIMEOUT_MS": "7200000",
5+
"CLAUDE_DEBUG": "0",
6+
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
7+
"ENABLE_LSP_TOOL": "1"
8+
},
9+
"attribution": {
10+
"commit": "🤖 Generated with Claude Code\n\nCo-Authored-By: Claude",
11+
"pr": "🤖 Generated with Claude Code"
12+
},
13+
"permissions": {
14+
"deny": [
15+
"Read(./.entire/metadata/**)"
16+
]
17+
},
18+
"enabledPlugins": {
19+
"lisa@lisa": true,
20+
"safety-net@cc-marketplace": true,
21+
"code-simplifier@claude-plugins-official": true,
22+
"code-review@claude-plugins-official": true,
23+
"coderabbit@claude-plugins-official": true,
24+
"sentry@claude-plugins-official": true,
25+
"skill-creator@claude-plugins-official": true,
26+
"atlassian@claude-plugins-official": true,
27+
"lisa-typescript@lisa": true,
28+
"typescript-lsp@claude-plugins-official": true
29+
},
30+
"extraKnownMarketplaces": {
31+
"CodySwannGT/lisa": {
32+
"source": {
33+
"source": "github",
34+
"repo": "CodySwannGT/lisa"
35+
}
36+
},
37+
"kenryu42/cc-marketplace": {
38+
"source": {
39+
"source": "github",
40+
"repo": "kenryu42/cc-marketplace"
41+
}
42+
}
43+
},
44+
"plansDirectory": "./plans"
45+
}

0 commit comments

Comments
 (0)