Skip to content

Develop#114

Merged
arclabs-studio merged 42 commits intomainfrom
develop
Mar 24, 2026
Merged

Develop#114
arclabs-studio merged 42 commits intomainfrom
develop

Conversation

@arclabs-studio
Copy link
Copy Markdown
Owner

No description provided.

* 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
@arclabs-studio arclabs-studio merged commit 0ce9bb2 into main Mar 24, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant