Skip to content

chore: add AI tooling config and conventional commits convention (JDWLABS-21)#8

Merged
jdwillmsen merged 10 commits into
mainfrom
chore/JDWLABS-21-ai-tooling
Jun 3, 2026
Merged

chore: add AI tooling config and conventional commits convention (JDWLABS-21)#8
jdwillmsen merged 10 commits into
mainfrom
chore/JDWLABS-21-ai-tooling

Conversation

@jdwillmsen
Copy link
Copy Markdown
Member

Summary

  • Add CLAUDE.md with NX monorepo structure, dev commands, and AI agent contract
  • Add GEMINI.md, AGENTS.md, .claude/settings.json, CONTRIBUTING.md, PR template
  • Fix .husky/commit-msg shebang for Windows compatibility (pre-existing exec format error)

Jira

JDWLABS-21 — part of JDWLABS-14 (Org Health & Governance)

Test plan

  • Verify CLAUDE.md accurately reflects repo structure (apps/angular/, apps/go/, apps/springboot/)
  • Verify .claude/settings.json denies git push and rm -rf
  • Verify commit-msg hook works: try a bad commit message, expect rejection

🤖 Generated with Claude Code

@jdwillmsen
Copy link
Copy Markdown
Member Author

Code review

Found 3 issues:

  1. .claude/settings.json allows git commit* which permits git commit --no-verify, bypassing the commitlint and lint-staged hooks. The existing AGENT.md on main explicitly lists git commit --no-verify under "Never Run". The entry should be scoped to prevent the --no-verify flag (e.g. split into "Bash(git commit -m *)" and "Bash(git commit --amend*)", or add a deny entry for "Bash(git commit --no-verify*)").

"Bash(git commit*)"

  1. The new CLAUDE.md uses npx nx throughout, but the repo's existing convention (in both CLAUDE.md and AGENT.md on main) is pnpm exec nx. Using npx nx can resolve a different version of nx than the one installed in the pnpm lockfile, and contradicts the explicit "Never run npm install or yarn" contract in AGENT.md. All npx nx invocations should be pnpm exec nx to match the existing convention.

apps/CLAUDE.md

Lines 31 to 57 in a76f312

npx nx run-many -t build # Build all apps
```
### Test
```bash
npx nx test <app-name> # Unit tests for one app
npx nx run-many -t test # All unit tests
npx nx e2e <app-name>-e2e # Cypress E2E tests
```
### Lint
```bash
npx nx lint <app-name> # Lint one app
npx nx run-many -t lint # Lint all
```
### Affected (used in CI to scope work to changed code)
```bash
npx nx affected -t build # Build only what changed vs main
npx nx affected -t test # Test only what changed
npx nx affected -t lint # Lint only what changed
```
### Go (backend services)

  1. The PR adds .github/pull_request_template.md (lowercase filename) but .github/PULL_REQUEST_TEMPLATE.md (uppercase) already exists on main. On Linux (case-sensitive) filesystems these are two distinct files. After merge both files will exist, which is ambiguous. GitHub will use whichever it finds first; the intended template may not be picked up. The new file should either replace the existing one (delete the old) or use the same casing.

## What
<!-- One sentence: what changed and why -->
## Type of change
- [ ] `feat` — new feature or capability
- [ ] `fix` — bug fix
- [ ] `build` — build system or external dependency change
- [ ] `chore` — maintenance / config / tooling
- [ ] `ci` — CI/CD pipeline change
- [ ] `docs` — documentation only
- [ ] `perf` — performance improvement
- [ ] `refactor` — restructure, no behavior change
- [ ] `revert` — revert a previous commit
- [ ] `style` — formatting / whitespace (no logic change)
- [ ] `test` — test additions or updates
## Checklist
- [ ] PR title follows conventional commit format: `type(scope): description`
- [ ] `npx nx affected -t build,test,lint` passes locally
- [ ] No secrets or credentials in diff
- [ ] CONTRIBUTING.md consulted for commit message format

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud Bot commented Jun 3, 2026

View your CI Pipeline Execution ↗ for commit e8873b4

Command Status Duration Result
nx affected -t build ✅ Succeeded <1s View ↗
nx affected -t lint test ✅ Succeeded <1s View ↗
nx-cloud record -- nx format:check ✅ Succeeded <1s View ↗

☁️ Nx Cloud last updated this comment at 2026-06-03 05:53:37 UTC

@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud Bot commented Jun 3, 2026

View your CI Pipeline Execution ↗ for commit 86a663a

Command Status Duration Result
nx-cloud record -- nx format:check ❌ Failed <1s View ↗

☁️ Nx Cloud last updated this comment at 2026-06-03 04:29:59 UTC

1 similar comment
@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud Bot commented Jun 3, 2026

View your CI Pipeline Execution ↗ for commit 86a663a

Command Status Duration Result
nx-cloud record -- nx format:check ❌ Failed <1s View ↗

☁️ Nx Cloud last updated this comment at 2026-06-03 04:29:59 UTC

Copy link
Copy Markdown
Contributor

@nx-cloud nx-cloud Bot left a comment

Choose a reason for hiding this comment

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

Nx Cloud is proposing a fix for your failed CI:

We ran nx format to fix the Prettier formatting failure on .claude/settings.json, which was introduced by this PR but not formatted before being committed. Prettier collapsed the short deny array onto a single line, which is the only change needed to satisfy nx format:check.

Tip

We verified this fix by re-running nx-cloud record -- nx format:check.

diff --git a/.claude/settings.json b/.claude/settings.json
index 7a0bbf3..6023809 100644
--- a/.claude/settings.json
+++ b/.claude/settings.json
@@ -12,9 +12,6 @@
       "Bash(git add *)",
       "Bash(git commit*)"
     ],
-    "deny": [
-      "Bash(git push*)",
-      "Bash(rm -rf *)"
-    ]
+    "deny": ["Bash(git push*)", "Bash(rm -rf *)"]
   }
 }

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally SxIm-YONs

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

jdwillmsen and others added 2 commits June 3, 2026 00:49
Prettier collapses the deny array to a single line. Unblocks the CI
Run Format Check step.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jdwillmsen jdwillmsen merged commit 7c8bb53 into main Jun 3, 2026
2 checks passed
@jdwillmsen jdwillmsen deleted the chore/JDWLABS-21-ai-tooling branch June 3, 2026 05:54
Sign up for free to 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