From a37f260f1a1a8a5caf3170cb79c67e9fbbd64748 Mon Sep 17 00:00:00 2001 From: Minsu Lee Date: Mon, 8 Jun 2026 19:58:44 +0900 Subject: [PATCH] chore: add PassionFactory standard dev tooling setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add the three configuration files that wire this repo into the shared PassionFactory developer workflow: - .claude/settings.json: enables the modern-web-guidance plugin from the pleaseai marketplace so Claude Code has the right toolset when working in this repo. - orca.yaml: Orca worktree setup script that runs mise trust/install, copies gitignored local files via @pleaseai/worktreeinclude, and runs bun install in each new worktree. - .worktreeinclude: declares which gitignored files (.env*, .claude/settings.local.json) should be propagated from the main checkout into Orca worktrees. Note: .claude/settings.local.json is a symlink to the pleaseai/oss shared settings and is intentionally excluded via .git/info/exclude — it is not tracked here. --- .claude/settings.json | 13 +++++++++++++ .worktreeinclude | 12 ++++++++++++ orca.yaml | 24 ++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 .claude/settings.json create mode 100644 .worktreeinclude create mode 100644 orca.yaml diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..524256b --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,13 @@ +{ + "enabledPlugins": { + "modern-web-guidance@pleaseai": true + }, + "extraKnownMarketplaces": { + "pleaseai": { + "source": { + "source": "github", + "repo": "pleaseai/claude-code-plugins" + } + } + } +} diff --git a/.worktreeinclude b/.worktreeinclude new file mode 100644 index 0000000..1c8dd3c --- /dev/null +++ b/.worktreeinclude @@ -0,0 +1,12 @@ +# .worktreeinclude — files to copy into an Orca/conductor worktree. +# .gitignore syntax. Only files that match a pattern AND are gitignored get copied. +# Claude Code --worktree handles this automatically; external tools (orca) run +# bunx @pleaseai/worktreeinclude from the setup hook. + +# Root environment variables +.env +.env.local +.env.*.local + +# Claude Code local settings (permissions, enabled plugins, etc.) +.claude/settings.local.json diff --git a/orca.yaml b/orca.yaml new file mode 100644 index 0000000..d9bbcef --- /dev/null +++ b/orca.yaml @@ -0,0 +1,24 @@ +# orca.yaml — setup script run when Orca creates a worktree. +# +# Orca (a worktree-native IDE for parallel agents) runs scripts.setup whenever it +# creates a new worktree. This file is committed, so the whole team shares it. +# Copy it into the root of a repo under repos/ and commit it there. +# Details: Skill("standards:dev-tooling") -> references/worktree-setup.md +# Reference: https://github.com/chatbot-pf/engineering-standards/blob/main/orca.yaml +# +# Injected environment variables: +# $ORCA_ROOT_PATH — main checkout (root repo) path; the source for copying gitignored local files +# $ORCA_WORKTREE_PATH — the newly created worktree path; the copy target and the setup working directory + +scripts: + setup: | + set -e + # 1. Trust the new worktree's mise.toml (trust is per-path; without it gradle/flutter fail with "Config files not trusted"). + mise trust --quiet + # 2. Install the tools declared in mise.toml [tools] (java/gradle/flutter/bun); bun is declared here too and provisioned together. + mise install + # 3. Copy gitignored local files (.env, .claude/settings.local.json, Firebase secrets, ...) from the main checkout into the worktree. + # Invoke via `mise exec -- bunx` so the mise-installed bun is used regardless of whether bun is on the host PATH. + mise exec -- bunx @pleaseai/worktreeinclude "$ORCA_ROOT_PATH" "$ORCA_WORKTREE_PATH" + # 4. Install dependencies inside the worktree. + mise exec -- bun install