Merged
Conversation
* feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements.
* chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows)
* fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant.
Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes).
#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text.
* Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text.
* Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore(release): prepare v2.7.0 (#84) - Update CHANGELOG.md with Claude Code hooks feature - Bump version to 2.7.0
Configure pull.rebase=true and remove merge.ff=false during setup to prevent local merge commits when pulling after PR merges.
The pre-push hook only ran `swift test` which fails for Xcode projects that don't have a Package.swift at the repo root. Now uses a detection strategy: 1. Makefile present → `make test` (preferred, already configured) 2. Package.swift present → `swift test --parallel` 3. .xcodeproj found → `xcodebuild test` with auto-detected scheme Also adds pre-push installation to install-hooks.sh which previously only installed the pre-commit hook.
* Develop (#91) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore: sync develop with main (#83) * Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore: sync develop with main after v2.7.0 release (#85) * Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore(release): prepare v2.7.0 (#84) - Update CHANGELOG.md with Claude Code hooks feature - Bump version to 2.7.0 * chore(deps): update ARCKnowledge submodule to v2.7.0 * fix(setup): prevent unwanted merge commits on pull (#87) Configure pull.rebase=true and remove merge.ff=false during setup to prevent local merge commits when pulling after PR merges. * fix(hooks): support Xcode projects in pre-push hook (#90) The pre-push hook only ran `swift test` which fails for Xcode projects that don't have a Package.swift at the repo root. Now uses a detection strategy: 1. Makefile present → `make test` (preferred, already configured) 2. Package.swift present → `swift test --parallel` 3. .xcodeproj found → `xcodebuild test` with auto-detected scheme Also adds pre-push installation to install-hooks.sh which previously only installed the pre-commit hook. * chore(release): prepare v2.7.2 (#92) - Update CHANGELOG.md - Bump version to 2.7.2
* fix(configs): resolve swiftformat/swiftlint conflicts - Disable wrapMultilineStatementBraces in SwiftFormat to prevent conflict with SwiftLint's opening_brace rule - Remove multiline_literal_brackets from SwiftLint opt-in rules to prevent conflict with --wrapcollections after-first * fix(hooks): respect swiftlint included paths in pre-commit The pre-commit hook was passing explicit file paths to swiftlint, which bypasses the included directive in .swiftlint.yml. This caused files outside included paths (e.g., Examples/) to be linted and block commits with violations. Now filters staged files to only those matching included paths before running swiftlint.
…ules These rules conflict with SwiftFormat's --wraparguments after-first and --wrapparameters after-first settings. SwiftFormat aligns continuation args after the first arg on the same line; SwiftLint's multiline rules require all-or-nothing formatting — unresolvable without changing the wrap style. Same resolution pattern as multiline_literal_brackets in v2.7.4.
…ules (#99) These rules conflict with SwiftFormat's --wraparguments/--wrapparameters after-first settings — unresolvable without changing wrap style. Same resolution pattern as multiline_literal_brackets in v2.7.4.
Change --type-attributes from same-line to prev-line so @mainactor and @observable appear on separate lines before the class declaration. fix(swiftlint): fix observable_viewmodel regex for prev-line format Replace lookahead (impossible with prev-line) with negative lookbehind that checks @observable\n does NOT immediately precede final class.
…ess control Change --extensionacl from on-declarations to on-extension so that SwiftFormat enforces the access level on the extension itself rather than on each individual member. This allows writing `private extension Foo` for blocks where all content is private — more DRY and safer than repeating `private` on every declaration.
* release: v2.7.6 (#100) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore: sync develop with main (#83) * Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore: sync develop with main after v2.7.0 release (#85) * Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore(release): prepare v2.7.0 (#84) - Update CHANGELOG.md with Claude Code hooks feature - Bump version to 2.7.0 * chore(deps): update ARCKnowledge submodule to v2.7.0 * fix(setup): prevent unwanted merge commits on pull (#87) Configure pull.rebase=true and remove merge.ff=false during setup to prevent local merge commits when pulling after PR merges. * fix(hooks): support Xcode projects in pre-push hook (#90) The pre-push hook only ran `swift test` which fails for Xcode projects that don't have a Package.swift at the repo root. Now uses a detection strategy: 1. Makefile present → `make test` (preferred, already configured) 2. Package.swift present → `swift test --parallel` 3. .xcodeproj found → `xcodebuild test` with auto-detected scheme Also adds pre-push installation to install-hooks.sh which previously only installed the pre-commit hook. * chore: sync develop with main after v2.7.2 release (#93) * Develop (#91) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore: sync develop with main (#83) * Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore: sync develop with main after v2.7.0 release (#85) * Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore(release): prepare v2.7.0 (#84) - Update CHANGELOG.md with Claude Code hooks feature - Bump version to 2.7.0 * chore(deps): update ARCKnowledge submodule to v2.7.0 * fix(setup): prevent unwanted merge commits on pull (#87) Configure pull.rebase=true and remove merge.ff=false during setup to prevent local merge commits when pulling after PR merges. * fix(hooks): support Xcode projects in pre-push hook (#90) The pre-push hook only ran `swift test` which fails for Xcode projects that don't have a Package.swift at the repo root. Now uses a detection strategy: 1. Makefile present → `make test` (preferred, already configured) 2. Package.swift present → `swift test --parallel` 3. .xcodeproj found → `xcodebuild test` with auto-detected scheme Also adds pre-push installation to install-hooks.sh which previously only installed the pre-commit hook. * chore(release): prepare v2.7.2 (#92) - Update CHANGELOG.md - Bump version to 2.7.2 * fix(configs): resolve SwiftLint/SwiftFormat conflicts and false positives (#94) * fix(configs): resolve SwiftFormat/SwiftLint config conflicts (#97) * fix(configs): resolve swiftformat/swiftlint conflicts - Disable wrapMultilineStatementBraces in SwiftFormat to prevent conflict with SwiftLint's opening_brace rule - Remove multiline_literal_brackets from SwiftLint opt-in rules to prevent conflict with --wrapcollections after-first * fix(hooks): respect swiftlint included paths in pre-commit The pre-commit hook was passing explicit file paths to swiftlint, which bypasses the included directive in .swiftlint.yml. This caused files outside included paths (e.g., Examples/) to be linted and block commits with violations. Now filters staged files to only those matching included paths before running swiftlint. * fix(swiftlint): remove multiline_arguments and multiline_parameters rules These rules conflict with SwiftFormat's --wraparguments after-first and --wrapparameters after-first settings. SwiftFormat aligns continuation args after the first arg on the same line; SwiftLint's multiline rules require all-or-nothing formatting — unresolvable without changing the wrap style. Same resolution pattern as multiline_literal_brackets in v2.7.4. * fix(swiftformat): use prev-line for type attributes Change --type-attributes from same-line to prev-line so @MainActor and @Observable appear on separate lines before the class declaration. fix(swiftlint): fix observable_viewmodel regex for prev-line format Replace lookahead (impossible with prev-line) with negative lookbehind that checks @Observable\n does NOT immediately precede final class. * release: v2.7.6 * Develop (#101) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore: sync develop with main (#83) * Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore: sync develop with main after v2.7.0 release (#85) * Develop (#78) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * Develop to main (#82) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notification hook in favor of Ghostty Ghostty terminal notifications already cover Claude Code events, making the custom notification hook redundant. * fix(hooks): allow git reset --hard to remote tracking branches (#79) Permits 'git reset --hard origin/*' which is safe (syncing to remote) while still blocking bare 'git reset --hard' (discards local changes). * fix(hooks): eliminate false positives from quoted strings and heredocs (#81) Strip heredoc content, quoted strings, and text inside PR bodies before matching dangerous git patterns. Also anchor validate-commit to only trigger when the command starts with 'git commit'. Fixes: hooks blocking commit messages and PR bodies that merely mention dangerous commands as text. * chore(release): prepare v2.7.0 (#84) - Update CHANGELOG.md with Claude Code hooks feature - Bump version to 2.7.0 * chore(deps): update ARCKnowledge submodule to v2.7.0 * fix(setup): prevent unwanted merge commits on pull (#87) Configure pull.rebase=true and remove merge.ff=false during setup to prevent local merge commits when pulling after PR merges. * fix(hooks): support Xcode projects in pre-push hook (#90) The pre-push hook only ran `swift test` which fails for Xcode projects that don't have a Package.swift at the repo root. Now uses a detection strategy: 1. Makefile present → `make test` (preferred, already configured) 2. Package.swift present → `swift test --parallel` 3. .xcodeproj found → `xcodebuild test` with auto-detected scheme Also adds pre-push installation to install-hooks.sh which previously only installed the pre-commit hook. * chore: sync develop with main after v2.7.2 release (#93) * Develop (#91) * Feature/update submodule (#66) * feat(hooks): add macOS notification hook for Claude Code Adds notification.sh that sends macOS notifications when tasks complete. * chore(deps): update ARCKnowledge submodule to v2.3.0 Updates from v2.2.0 with new Claude skills and documentation improvements. * chore: update ARCKnowledge submodule to v2.4.0 * chore: update ARCKnowledge submodule to v2.5.0 * chore(security): add ARC Labs security patterns to .gitignore * Feature/update submodule (#74) * chore(deps): update ARCKnowledge submodule to v2.6.0 * style(swiftformat): update attributes to same-line per ARCKnowledge v2.6.0 Change --type-attributes, --func-attributes, and --complex-attributes from prev-line to same-line. Remove deprecated legacy attribute options. * style(swiftlint): enforce first parameter on same line as opening paren Add first_argument_location: same_line for multiline_arguments and multiline_parameters rules. Enable multiline brackets validation. * docs: add CLAUDE.md agent guide for ARCDevTools repo Provides instructions for AI agents working on this tooling repository. Describes project structure, ARCKnowledge submodule relationship, setup script internals, and consumer project installation flow. References ARCKnowledge for standards without duplicating content. * docs(readme): rewrite as implementation guide with current skills and configs - Update version badge to 2.5.0 - Rewrite skills section: 11 ARCKnowledge skills (was 7), grouped by phase - Add submodule chain explanation and symlink installation details - Document multiline_arguments/multiline_parameters (first_argument_location: same_line) - Document SwiftFormat same-line attributes and after-first wrapping - Simplify structure: remove duplicate sections and non-existent file references - Add non-interactive setup flags (--with-workflows, --no-workflows) * Feature/claude code hooks (#77) * fix(hooks): improve notification hook for Claude Code compatibility Sanitize osascript input to escape quotes, update default message, and add graceful error handling. * feat(hooks): add PostToolUse hook to auto-format Swift files Runs SwiftFormat on .swift files immediately after Edit/Write operations. Catches formatting issues before git staging, complementing the pre-commit hook. * feat(hooks): add PreToolUse hook to validate conventional commits Intercepts git commit commands and validates the message follows the format type(scope): subject. Fills the gap where neither pre-commit nor pre-push validates commit message format. * feat(hooks): add SessionStart hook for project context Shows current branch, last release tag, and pending changes when starting a new Claude Code session in ARCDevTools. * feat(hooks): add PreToolUse hook to block dangerous git commands Blocks force-push to main/develop, destructive clean operations, hard resets, and deletion of protected branches. Global safety net. * feat(hooks): add project hook configuration for ARCDevTools Configures Claude Code hooks in .claude/settings.json: - PostToolUse: auto-format Swift files on Edit/Write - PreToolUse: validate conventional commit messages - Stop: prompt to verify swift build if .swift files edited - SessionStart: show branch and project context on startup * chore(hooks): remove notific…
* chore(deps): update ARCKnowledge submodule to v2.9.0 * feat(setup): install ARCKnowledge agents as symlinks into .claude/agents/
- Update CHANGELOG.md - Bump version to 2.10.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.