Skip to content

build: project structure, conventions & AI guardrails uplift (JDWLABS-11)#5

Merged
jdwillmsen merged 11 commits into
mainfrom
feat/JDWLABS-11-project-structure
May 28, 2026
Merged

build: project structure, conventions & AI guardrails uplift (JDWLABS-11)#5
jdwillmsen merged 11 commits into
mainfrom
feat/JDWLABS-11-project-structure

Conversation

@jdwillmsen
Copy link
Copy Markdown
Member

Summary

  • Migrated 6 shell scripts + docker/ from tools/scripts/; updated 7 project.json version targets; added scripts/ to .nxignore so Nx ignores it
  • Tightened commit enforcement: explicit commitlint rules, Commitizen (pnpm run commit), lint-staged pre-commit hook, CI commit message validation on PRs
  • Added CLAUDE.md, AGENT.md, docs/ai/ (architecture, conventions, workflows, onboarding), and .github/PULL_REQUEST_TEMPLATE.md
  • Added per-app-scope and framework:angular module boundary rules to .eslintrc.json — surfaced a real pre-existing violation (scope:rolesui importing from scope:usersui) and fixed it by moving dateFilterComparator/dateSortComparator to scope:shared

Type of Change

  • build — build system or CI change
  • docs — documentation only
  • fix — bug fix (cross-scope boundary violation in rolesui)
  • ci — CI change

Test Plan

  • pnpm exec nx run-many -t lint test — all 21 projects pass
  • pnpm exec nx format:check — passes
  • Commitlint validated: echo "feat(auth): add login" | pnpm exec commitlint exits 0; echo "added stuff" | pnpm exec commitlint exits 1
  • Pre-commit hook fires lint-staged on commit (verified during branch commits)
  • Module boundary violation in angular-rolesui-feature-core resolved and lint passes

Checklist

  • Conventional commit messages (feat(scope): subject)
  • pnpm exec nx format:check passes
  • pnpm exec nx affected -t lint passes
  • pnpm exec nx affected -t test passes
  • New Angular libs have type:, scope:, and framework: tags in project.json
  • No cross-scope imports (e.g., scope:container importing scope:authui libs)

@jdwillmsen jdwillmsen force-pushed the feat/JDWLABS-11-project-structure branch from d774557 to 8359d74 Compare May 27, 2026 03:51
@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud Bot commented May 27, 2026

View your CI Pipeline Execution ↗ for commit 6cc893a

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

☁️ Nx Cloud last updated this comment at 2026-05-27 04:55:43 UTC

@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud Bot commented May 27, 2026

View your CI Pipeline Execution ↗ for commit 8359d74

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

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

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

nx-cloud Bot commented May 27, 2026

View your CI Pipeline Execution ↗ for commit 8359d74

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

☁️ Nx Cloud last updated this comment at 2026-05-27 03:53:08 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.

✅ The fix from Nx Cloud was applied

We ran nx format:write to reformat .commitlintrc.json, which the PR introduced with lines exceeding Prettier's 80-character print width. The type-enum and subject-case rule arrays are now expanded across multiple lines, satisfying the format:check gate.

Tip

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

Suggested Fix changes
diff --git a/.commitlintrc.json b/.commitlintrc.json
index c3f04f4..926ec52 100644
--- a/.commitlintrc.json
+++ b/.commitlintrc.json
@@ -1,9 +1,29 @@
 {
   "extends": ["@commitlint/config-conventional"],
   "rules": {
-    "type-enum": [2, "always", ["feat", "fix", "chore", "docs", "style", "refactor", "perf", "test", "build", "ci", "revert"]],
+    "type-enum": [
+      2,
+      "always",
+      [
+        "feat",
+        "fix",
+        "chore",
+        "docs",
+        "style",
+        "refactor",
+        "perf",
+        "test",
+        "build",
+        "ci",
+        "revert"
+      ]
+    ],
     "scope-case": [2, "always", "kebab-case"],
-    "subject-case": [2, "never", ["sentence-case", "start-case", "pascal-case", "upper-case"]],
+    "subject-case": [
+      2,
+      "never",
+      ["sentence-case", "start-case", "pascal-case", "upper-case"]
+    ],
     "subject-empty": [2, "never"],
     "subject-full-stop": [2, "never", "."],
     "header-max-length": [2, "always", 100],

Revert fix via Nx Cloud  

View interactive diff ↗

➡️ This fix was applied by Jake Willmsen

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

…WLABS-11)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jdwillmsen jdwillmsen force-pushed the feat/JDWLABS-11-project-structure branch from be8e46d to 875b1df Compare May 27, 2026 04:04
…ts (JDWLABS-11)

- Move docs/ai/{architecture,conventions,onboarding,workflows}.md to docs/
  (not AI-only content; general dev reference)
- Replace ASCII service map and CI/CD flow with Mermaid diagrams
- Remove hardcoded scope name list from CLAUDE.md; point to project.json
  and `pnpm exec nx show projects` as canonical source
- Remove hardcoded Angular app list from workflows.md serve command
- Fix .eslintrc.json refs -> eslint.config.ts in CLAUDE.md, AGENT.md, onboarding.md
- Add note in conventions.md that .commitlintrc.json is source of truth for commit types

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jdwillmsen jdwillmsen merged commit e151a30 into main May 28, 2026
2 checks passed
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