diff --git a/.claude/settings.json b/.claude/settings.json index 5c49ccbf..582812a5 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,7 +1,8 @@ { "model": "opusplan", "env": { - "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" + "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1", + "CLAUDE_CODE_SUBAGENT_MODEL": "sonnet" }, "permissions": { "allow": [ diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 5fc1ff66..1524d913 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -44,6 +44,7 @@ When responding to PR review feedback, do not directly apply reviewer suggestion - **Cross-stack cleanup discovered mid-PR**: If the PR exposes a problem it doesn't own (other stacks, shared tooling), file a cross-linked follow-up issue instead of expanding the diff. List filed issues with URLs in the session summary. - **Rule writing**: Every clause must be load-bearing (rule / non-obvious why / concrete example). Cut restatements, redundant adverbs, and self-evident "why" tails. - **PR body updates after push**: Fetch the current body and modify in place via `gh pr edit --body-file` — never rewrite from scratch — so HTML-comment marker blocks (e.g. ``) survive. +- **Process new bot review feedback after each push to an open PR**: After pushing to a PR branch, check for new bot review comments the push may have triggered and address them before reporting the push complete. ## When in Doubt - Mirror existing implementations; prefer incremental changes with tests. diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9bd01702..afe4b031 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,3 +9,42 @@ updates: directory: "/" schedule: interval: "weekly" + + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + ignore: + - dependency-name: "*" + update-types: [ + "version-update:semver-major", + "version-update:semver-minor" + ] + cooldown: + semver-patch-days: 2 + + - package-ecosystem: "uv" + directory: "/fastapi" + schedule: + interval: "weekly" + ignore: + - dependency-name: "*" + update-types: [ + "version-update:semver-major", + "version-update:semver-minor" + ] + cooldown: + semver-patch-days: 2 + + - package-ecosystem: "gomod" + directory: "/go-api" + schedule: + interval: "weekly" + ignore: + - dependency-name: "*" + update-types: [ + "version-update:semver-major", + "version-update:semver-minor" + ] + cooldown: + semver-patch-days: 2 diff --git a/.gitignore b/.gitignore index fff97c7a..36d82805 100644 --- a/.gitignore +++ b/.gitignore @@ -173,10 +173,12 @@ Thumbs.db # Claude settings .claude/settings.local.json .claude/scheduled_tasks.lock +.claude/worktrees/ # Externally-sourced skills (tracked via skills-lock.json, re-install with: npx skills add) .agent/skills/ .agents/skills/ +.claude/skills/dev .claude/skills/js-deps .claude/skills/learn .claude/skills/mermaid-diagrams diff --git a/.worktreeinclude b/.worktreeinclude new file mode 100644 index 00000000..22c4dc5c --- /dev/null +++ b/.worktreeinclude @@ -0,0 +1,2 @@ +.env +**/.env diff --git a/CLAUDE.md b/CLAUDE.md index ea3981d0..4950dc2a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -164,7 +164,8 @@ Additional notes: - **npm cache permission error (EPERM)**: If `npm` fails with `Your cache folder contains root-owned files` (can recur after `sudo npm install -g`), pass `--cache /tmp/npm-cache-$$` to redirect to a writable temp dir (e.g. `npm outdated --cache /tmp/npm-cache-$$`). Permanent fix: `sudo chown -R 501:20 ~/.npm` - **Subagent `cd` does not persist across Bash calls**: Shell working directory resets between Bash tool calls. Never instruct a subagent to `cd ` in one call and `npm install` in the next — npm will run in the wrong directory (typically the main repo root), silently modifying the wrong `package.json`. Always use `npm install --prefix ` so no `cd` is needed. **`npm run` `--prefix` syntax**: the flag must come before the script name — `npm --prefix /path run