Skip to content

chore: adopt PassionFactory standards (toolchain, ESLint migration, OSS settings split) - #108

Merged
amondnet merged 5 commits into
mainfrom
chore/standards-toolchain-setup
Jul 3, 2026
Merged

chore: adopt PassionFactory standards (toolchain, ESLint migration, OSS settings split)#108
amondnet merged 5 commits into
mainfrom
chore/standards-toolchain-setup

Conversation

@amondnet

@amondnetamondnet commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Adopts PassionFactory's standard toolchain and settings for this OSS repo, via /standards:setup:

  • Add standard dev toolchain configs: mise.toml (node 24 + bun 1.3.5 pinned), bunfig.toml (linker=hoisted), .editorconfig (from pleaseai/code-style), commitlint.config.js + .husky/commit-msg, .github/dependabot.yml (bun + github-actions ecosystems, weekly), and related package.json/bun.lock changes (added @pleaseai/eslint-config, @commitlint/cli, @commitlint/config-conventional; removed @antfu/eslint-config).
  • Migrate ESLint config from @antfu/eslint-config to the @pleaseai/eslint-config wrapper, relaxing style/max-statements-per-line and markdown/no-multiple-h1, and ignoring .impeccable/.
  • Apply eslint --fix mechanically across packages/**, scripts/**, plugins/**, examples/**, apps/docs/**, ARCHITECTURE.md (plus one eslint-skip comment for a pseudo-code fence), README.md, README.ko.md, .please/config.yml, and .github/workflows/release-please.yml (YAML quote style). No behavior changes.
  • Split Claude Code settings for OSS: .claude/settings.json removes 6 internal passionfactory-only plugins, adds language: en, and registers the pleaseai marketplace (with autoUpdate) plus turborepo/bun/ast-grep plugins.

Notes:bun run test passes except for 5 pre-existing, environment-dependent DartServer integration test failures caused by the Dart SDK being unavailable in this sandbox — unrelated to the changes in this PR.

Related issue

N/A

Checklist

  • PR title follows Conventional Commits
  • Tests added or updated, and the suite passes (bun run test) — passes overall; see the pre-existing Dart SDK caveat in Summary
  • Lint/format pass (bun run lint)
  • Documentation updated if behavior changed
  • No breaking change, or a BREAKING CHANGE: note is included

Summary by cubic

Adopts PassionFactory’s standard toolchain and ESLint config, splits Claude Code OSS settings, and fixes a Nuxt Content slot-marker regression. Mechanical lint/docs changes only; no runtime behavior changes.

  • Refactors

    • Adopt standard toolchain configs: mise.toml (Node 24, Bun 1.3.5 + tasks), bunfig.toml (hoisted linker), .editorconfig, commitlint.config.js + .husky/commit-msg, .github/dependabot.yml (weekly).
    • Migrate ESLint to @pleaseai/eslint-config: relax style/max-statements-per-line and markdown/no-multiple-h1, disable markdown/no-missing-atx-heading-space for apps/docs/content/**, ignore .impeccable/**, and run eslint --fix. Dependencies updated: add @pleaseai/eslint-config, @commitlint/cli, @commitlint/config-conventional; remove @antfu/eslint-config.
    • Update .claude/settings.json for OSS: remove internal plugins, set language: en, register pleaseai marketplace with autoUpdate, and add turborepo, bun, ast-grep plugins.
  • Bug Fixes

    • Restore Nuxt Content MDC slot markers broken by the heading-space autofix and guard against regressions with the ESLint rule override.

Written for commit 6b15392. Summary will update on new commits.

Summary by CodeRabbit

  • New Features

    • Added project formatting and task tooling for more consistent local development and checks.
    • Updated editor and dependency automation settings to better keep the project in sync.
    • Refreshed plugin and LSP-related configuration for improved tool compatibility.
  • Documentation

    • Cleaned up setup and API documentation examples for clearer usage.
    • Normalized README and docs formatting without changing the shown content.

Adopt PassionFactory standard local dev toolchain:
- mise.toml: pin node 24 and bun 1.3.5, add tasks
- bunfig.toml: linker=hoisted
- .editorconfig: from pleaseai/code-style
- commitlint.config.js + .husky/commit-msg: commitlint wiring
- .github/dependabot.yml: bun + github-actions ecosystems, weekly
- package.json/bun.lock: add @pleaseai/eslint-config, @commitlint/cli,
@commitlint/config-conventional; remove @antfu/eslint-config
Swap the antfu ESLint config for the @pleaseai/eslint-config wrapper.
Relax style/max-statements-per-line and markdown/no-multiple-h1, and
ignore .impeccable/.
Mechanical auto-fixes across source and docs after migrating to
@pleaseai/eslint-config (antfu v8). Adds one eslint-skip comment in
ARCHITECTURE.md for a pseudo-code fence, and normalizes YAML quote
style in .github/workflows/release-please.yml.
No behavior changes.
…e plugins)
Remove 6 internal passionfactory-only plugins from .claude/settings.json
for public OSS use, add language: en, and register the pleaseai
marketplace (with autoUpdate) plus turborepo/bun/ast-grep plugins.
@coderabbitai

coderabbitaiBot commented Jul 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Introduces new development tooling configuration (editorconfig, dependabot, husky commit-msg hook, commitlint, eslint config migration to pleaseai, mise, bunfig), updates Claude plugin/marketplace settings, adjusts documentation and examples accordingly, and applies mechanical single-line brace reformatting to conditional statements across multiple existing packages with no behavioral changes.

Changes

Development Tooling & Documentation

Layer / File(s)Summary
Claude plugin and marketplace settings
.claude/settings.json
Sets language: "en", swaps enabled plugins from passionfactory to pleaseai equivalents, and adds a pleaseai marketplace source.
Editor, CI, and commit tooling setup
.editorconfig, .github/dependabot.yml, .github/workflows/release-please.yml, .husky/commit-msg, commitlint.config.js, package.json
Adds editorconfig rules, Dependabot config, a workflow description tweak, a commitlint-invoking commit-msg hook, a commitlint config, and updated devDependencies.
ESLint configuration migration
eslint.config.js
Switches config factory from antfu to pleaseai, adds an ignore pattern, disables a style rule, and adds a markdown-specific override.
Bun and mise runtime tooling config
bunfig.toml, mise.toml
Adds an install linker setting and a new mise.toml with pinned tool versions and task aliases.
Config YAML formatting normalization across docs
.please/config.yml, README.md, README.ko.md, plugins/code-intelligence-lsp/README.md
Normalizes quoting/spacing in config examples across docs without changing values.
Architecture and example documentation updates
ARCHITECTURE.md, apps/docs/content/index.md, examples/lsp-typescript/README.md, examples/lsp-typescript/tsconfig.json, plugins/typescript-lsp/package.json
Updates async API usage and Provider interface docs, reformats markers, adjusts import order/comments, reorders tsconfig options and dependency entries.

Single-line Brace Formatting Normalization

Layer / File(s)Summary
packages/code brace normalization
packages/code/src/commands/setup.ts, packages/code/src/hooks/lsp.ts, packages/code/src/providers/lsp/index.ts, packages/code/src/tools/index.ts
Converts multi-line conditional guards to single-line braced forms.
packages/dora brace normalization
packages/dora/src/client/*, packages/dora/src/providers/*, packages/dora/src/tools/utils.ts
Converts multi-line conditional guards to single-line braced forms.
packages/format brace normalization
packages/format/src/formatter.ts, packages/format/src/index.ts
Converts detection and filtering conditionals to single-line braced forms.
packages/lsp client and index.ts brace normalization
packages/lsp/src/client.ts, packages/lsp/src/index.ts
Converts debounce, guard, and normalization conditionals to single-line braced forms.
Multiplexer brace normalization and test updates
packages/lsp/src/multiplexer.ts, packages/lsp/test/unit/multiplexer.test.ts
Reformats diagnostics scheduling, queue, shutdown, and handler guards; condenses corresponding test code.
LSP server implementations and scripts brace normalization
packages/lsp/src/server/*, scripts/gen-unified-lsp-json.ts
Converts guard/loop conditionals to single-line braced forms.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

  • pleaseai/code-intelligence#103: Both PRs modify .claude/settings.json's enabledPlugins/plugin allowlist, removing passionfactory entries and switching to pleaseai plugins/marketplace configuration.
  • pleaseai/code-intelligence#106: Both PRs modify .claude/settings.json's enabledPlugins and marketplace configuration in the same section.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly matches the main changes: standard toolchain setup, ESLint migration, and splitting OSS settings.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/standards-toolchain-setup

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@socket-security

socket-securityBot commented Jul 3, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Added@​pleaseai/​eslint-config@​0.0.4671009789100
Added@​commitlint/​cli@​21.2.0991007397100
Added@​commitlint/​config-conventional@​21.2.010010010097100

View full report

@socket-security

socket-securityBot commented Jul 3, 2026

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

ActionSeverityAlert (click "▶" to expand/collapse)
WarnHigh
Obfuscated code: npm eslint-plugin-jsdoc is 90.0% likely obfuscated

Confidence: 0.90

Location:Package overview

From:?npm/@pleaseai/eslint-config@0.0.4npm/eslint-plugin-jsdoc@62.9.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/eslint-plugin-jsdoc@62.9.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request focuses on project-wide configuration updates, formatting adjustments, and tooling enhancements. Key changes include migrating the ESLint configuration to @pleaseai/eslint-config, adding .editorconfig, .husky/commit-msg, commitlint.config.js, mise.toml, and bunfig.toml files, and updating Dependabot settings. Additionally, numerous TypeScript files were updated to enforce curly braces on single-line if statements, alongside minor documentation and comment formatting improvements. No review comments were provided, so there is no additional feedback to evaluate.

@codecov

codecovBot commented Jul 3, 2026

Copy link
Copy Markdown

@amondnet
amondnet marked this pull request as ready for review July 3, 2026 17:23
@greptile-apps

greptile-appsBot commented Jul 3, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adopts PassionFactory's standard OSS toolchain and settings for the code-intelligence repo. It migrates ESLint from @antfu/eslint-config to @pleaseai/eslint-config, adds standard dev configs (mise.toml, bunfig.toml, .editorconfig, commitlint, Dependabot), splits Claude Code settings for the OSS context, and runs eslint --fix mechanically across the codebase.

  • Toolchain: Pins Node 24 and Bun 1.3.5 via mise.toml; sets linker = "hoisted" in bunfig.toml for Turborepo compatibility; adds weekly Dependabot coverage for both bun and github-actions ecosystems.
  • ESLint migration: Swaps @antfu/eslint-config for @pleaseai/eslint-config@^0.0.4, disables style/max-statements-per-line and markdown/no-multiple-h1, adds an MDC-aware override for apps/docs/content/ that prevents heading-space autofixes from breaking slot syntax.
  • Mechanical lint fixes: All if (cond)\n return x patterns are rewritten to if (cond) { return x } per the new rule; quote style and YAML style changes only — no runtime behavior changes.

Confidence Score: 5/5

Safe to merge — all changes are toolchain configuration additions and mechanical lint reformatting with no runtime behavior changes.

Every source-code change is a mechanical brace-style rewrite produced by eslint --fix; the before/after logic is identical in all cases. The one non-trivial rewrite in multiplexer.ts (setTimeout arrow closure to argument-passing form) is functionally equivalent in Bun and Node.js. New config files (mise.toml, bunfig.toml, commitlint, dependabot) are additive and well-formed. The ESLint migration relaxes two style rules and adds a documented MDC-aware override — no previously enforced correctness rules are dropped.

No files require special attention.

Important Files Changed

FilenameOverview
eslint.config.jsMigrates from @antfu/eslint-config to @pleaseai/eslint-config; adds rule overrides and an MDC-aware markdown override to prevent slot-syntax breakage in docs content.
.claude/settings.jsonRemoves internal passionfactory plugins, adds language:en, registers pleaseai marketplace with autoUpdate:true (previously flagged), and adds turborepo/bun/ast-grep plugins.
mise.tomlNew file pinning Node 24 and Bun 1.3.5; defines standard dev tasks (dev, build, lint, typecheck, test, check).
.github/dependabot.ymlNew file enabling weekly Dependabot for bun and github-actions ecosystems; bun ecosystem is GA-supported as of early 2025.
packages/lsp/src/multiplexer.tsMechanical brace-style fixes; one setTimeout refactor (arrow-closure to argument passing) is functionally equivalent in Bun/Node.js.
package.jsonSwaps @antfu/eslint-config for @pleaseai/eslint-config@^0.0.4 and adds @commitlint/cli + @commitlint/config-conventional.
packages/lsp/src/index.tsMechanical brace-style lint fixes throughout; no logic changes.
packages/format/src/formatter.tsMechanical brace-style lint fixes for single-statement if blocks; no behavior changes.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Developer commits] --> B{commitlint hook}
B -->|valid| C[Push to repo]
B -->|invalid| D[Rejected]
C --> E[CI pipeline]
E --> F[bun install hoisted]
F --> G[ESLint via pleaseai config]
F --> H[TypeScript check]
F --> I[Tests via Bun]
C --> J[Dependabot weekly]
J --> K[bun ecosystem PRs]
J --> L[github-actions PRs]
subgraph Claude Code env
M[settings.json]
M --> N[pleaseai marketplace autoUpdate]
M --> O[turborepo plugin]
M --> P[bun plugin]
M --> Q[ast-grep plugin]
end
subgraph Local dev via mise
S[mise install]
S --> T[Node 24]
S --> U[Bun 1.3.5]
end
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A[Developer commits] --> B{commitlint hook}
B -->|valid| C[Push to repo]
B -->|invalid| D[Rejected]
C --> E[CI pipeline]
E --> F[bun install hoisted]
F --> G[ESLint via pleaseai config]
F --> H[TypeScript check]
F --> I[Tests via Bun]
C --> J[Dependabot weekly]
J --> K[bun ecosystem PRs]
J --> L[github-actions PRs]
subgraph Claude Code env
M[settings.json]
M --> N[pleaseai marketplace autoUpdate]
M --> O[turborepo plugin]
M --> P[bun plugin]
M --> Q[ast-grep plugin]
end
subgraph Local dev via mise
S[mise install]
S --> T[Node 24]
S --> U[Bun 1.3.5]
end
Loading

Reviews (2): Last reviewed commit: "fix(docs): restore MDC slot markers brok..." | Re-trigger Greptile

Comment thread.claude/settings.json

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
mise.toml (1)

1-34: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider pinning a more recent Bun patch.

Bun's 1.3.x line has moved to 1.3.14 as of the latest release; 1.3.5 is several patches behind. Not a defect, but worth bumping periodically since patch releases include bugfixes/perf improvements.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@mise.toml` around lines 1 - 34, The pinned Bun version in the [tools] section
is outdated; update the bun entry from the current 1.3.x patch to a newer
1.3.14-style patch version. Keep the existing tool/task structure intact, and
only adjust the bun version so mise install uses the newer patch release.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/docs/content/index.md`:
- Around line 24-27: The markdown in this doc uses repeated heading markers like
“# title” and “# content”, which triggers the MD024 duplicate-heading lint
failure. Update the markers in this page to non-heading syntax (or otherwise
make them unique) so markdownlint passes, and ensure the same change is applied
anywhere else this pattern appears, including the referenced duplicate section.
---
Nitpick comments:
In `@mise.toml`:
- Around line 1-34: The pinned Bun version in the [tools] section is outdated;
update the bun entry from the current 1.3.x patch to a newer 1.3.14-style patch
version. Keep the existing tool/task structure intact, and only adjust the bun
version so mise install uses the newer patch release.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ddadde80-1812-47a9-bebc-0a9afb7c3a12

📥 Commits

Reviewing files that changed from the base of the PR and between 2ed8a3a and 3e39ee7.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (43)
  • .claude/settings.json
  • .editorconfig
  • .github/dependabot.yml
  • .github/workflows/release-please.yml
  • .husky/commit-msg
  • .please/config.yml
  • ARCHITECTURE.md
  • README.ko.md
  • README.md
  • apps/docs/content/index.md
  • bunfig.toml
  • commitlint.config.js
  • eslint.config.js
  • examples/lsp-typescript/README.md
  • examples/lsp-typescript/tsconfig.json
  • mise.toml
  • package.json
  • packages/code/src/commands/setup.ts
  • packages/code/src/hooks/lsp.ts
  • packages/code/src/providers/lsp/index.ts
  • packages/code/src/tools/index.ts
  • packages/dora/src/client/jetbrains-client.ts
  • packages/dora/src/client/port-discovery.ts
  • packages/dora/src/providers/ast-grep/napi.ts
  • packages/dora/src/providers/jetbrains/index.ts
  • packages/dora/src/providers/lsp/index.ts
  • packages/dora/src/providers/registry.ts
  • packages/dora/src/tools/utils.ts
  • packages/format/src/formatter.ts
  • packages/format/src/index.ts
  • packages/lsp/src/client.ts
  • packages/lsp/src/index.ts
  • packages/lsp/src/multiplexer.ts
  • packages/lsp/src/server/clangd.ts
  • packages/lsp/src/server/deno.ts
  • packages/lsp/src/server/gopls.ts
  • packages/lsp/src/server/oxlint.ts
  • packages/lsp/src/server/rust-analyzer.ts
  • packages/lsp/src/server/utils.ts
  • packages/lsp/test/unit/multiplexer.test.ts
  • plugins/code-intelligence-lsp/README.md
  • plugins/typescript-lsp/package.json
  • scripts/gen-unified-lsp-json.ts

Comment threadapps/docs/content/index.md Outdated

@cubic-dev-aicubic-dev-aiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 44 files

Architecture diagram
sequenceDiagram
participant Dev as Developer
participant Git as Git/Hooks
participant Local as Local Toolchain
participant CI as GitHub CI
participant Dependabot as Dependabot
participant Claude as Claude Code
Note over Dev,Claude: Developer workflow after config adoption
Dev->>Local: mise run check
Local->>Local: bun run lint (ESLint config @pleaseai)
Local->>Local: bun run typecheck
Local->>Local: bun run test
Local-->>Dev: results
Dev->>Git: git commit -m "feat: ..."
Git->>Git: .husky/commit-msg hook
Git->>Local: commitlint (conventional commits)
alt Commit message valid
Local-->>Git: pass
Git-->>Dev: commit accepted
else Invalid format
Local-->>Git: fail
Git-->>Dev: commit rejected
end
Dev->>Git: git push
Git->>CI: run workflows (release-please, tests)
CI->>CI: ESLint check with @pleaseai/eslint-config
CI->>CI: Curly-brace style enforcement via config rules
CI-->>Git: status
Dependabot->>Dependabot: weekly scan (bun + github-actions)
Dependabot-->>Dev: creates PRs for updates
Note over Dev,Claude: Claude Code IDE integration
Dev->>Claude: open project
Claude->>Claude: loads .claude/settings.json
Claude->>Claude: registers pleaseai marketplace plugins (turborepo, bun, ast-grep)
Claude->>Claude: internal passionfactory plugins removed
Claude-->>Dev: ready with OSS-safe plugins
Loading

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment threadapps/docs/content/index.md Outdated
Comment thread.claude/settings.json
…tofix
The markdown/no-missing-atx-heading-space autofix inserted spaces into
Nuxt Content slot references (#title, #description, #links, #content),
turning them into ATX headings and breaking the u-page-hero /
u-page-section component slots. Revert the seven markers to the no-space
form and disable the ATX-heading-space rule for apps/docs/content/** so
the fix survives lint.
Addresses cubic P0 and CodeRabbit MD024 review findings on PR #108.
@sonarqubecloud

Copy link
Copy Markdown

@amondnet
amondnet merged commit dd049b7 into mainJul 3, 2026
11 checks passed
@amondnet
amondnet deleted the chore/standards-toolchain-setup branch July 3, 2026 17:46
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@amondnet