Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 22 additions & 10 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Development infrastructure template repository providing DevContainer images, CI
- **Package Manager**: npm
- **Base Image**: `ghcr.io/keito4/config-base:latest`
- **Release**: semantic-release (Conventional Commits)
- **macOS Environment**: nix-darwin + home-manager (`nix/flake.nix`)

## Project Structure

Expand All @@ -41,16 +42,17 @@ Development infrastructure template repository providing DevContainer images, CI
| `.agents/` | AI agent skills and configurations |
| `.claude/commands/` | Claude Code slash commands (28 commands) |
| `.claude/hooks/` | Pre/post hook scripts for quality enforcement |
| `.claude/rules/` | Claude Code rules for development standards |
| `.codex/` | Codex AI agent configuration |
| `.cursor/` | Cursor editor settings |
| `.devcontainer/` | DevContainer configuration and Dockerfile |
| `.gemini/` | Gemini AI agent configuration |
| `.github/workflows/` | GitHub Actions CI/CD workflows |
| `.github/workflows/` | GitHub Actions CI/CD workflows (15 workflows) |
| `.husky/` | Git hooks (pre-commit, commit-msg) |
| `.vscode/` | VS Code workspace settings |
| `brew/` | Homebrew package management (Linux only) |
| `credentials/` | Credential templates and filtering documentation |
| `docs/` | Documentation |
| `docs/` | Documentation and ADRs |
| `dot/` | Dotfiles (DevContainer .zshrc, peco) |
| `eslint/` | ESLint configuration and plugins |
| `git/` | Git hooks and configuration |
Expand All @@ -59,6 +61,7 @@ Development infrastructure template repository providing DevContainer images, CI
| `script/` | Utility shell scripts |
| `templates/` | Workflow, testing, and dotfile templates |
| `test/` | Test suites (Jest unit, BATS integration) |
| `vscode/` | VS Code extensions list |

## Available Commands

Expand Down Expand Up @@ -89,7 +92,7 @@ Development infrastructure template repository providing DevContainer images, CI
| `/dependency-health-check` | Check dependency health |
| `/security-credential-scan` | Scan for leaked credentials |
| `/security-review` | Security review with improvement suggestions |
| `/similarity-analysis` | Detect duplicate code patterns |
| `/similarity-analysis` | Analyze code similarity to detect duplicate functions and patterns |
| `/code-complexity-check` | Code complexity analysis |
| `/test-coverage-trend` | Test coverage trend analysis |

Expand All @@ -105,7 +108,7 @@ Development infrastructure template repository providing DevContainer images, CI
| `update-libraries.yml` | Scheduled `npm run update:libs` with auto PR |
| `update-dev-tools.yml` | Update development tools |
| `update-claude-plugins.yml` | Update Claude plugins |
| `container-security.yml` | Container security scanning |
| `container-security.yml` | Container security scanning (Trivy, CodeQL, SBOM) |
| `coverage-report.yml` | Coverage report generation |
| `label-sync.yml` | GitHub label IaC management |
| `dependabot-auto-merge.yml` | Dependabot PR auto-merge |
Expand All @@ -117,12 +120,12 @@ Development infrastructure template repository providing DevContainer images, CI

The following scripts are auto-detected and run before git commit/push:

| Script | Command | Purpose |
| -------------- | ----------------------------------------------------- | -------------------------- |
| `format:check` | `prettier --check .` | Code formatting validation |
| `lint` | `eslint . --ext .js` | Code quality validation |
| `test` | `jest --runInBand` | Unit test execution |
| `shellcheck` | `find script -name '*.sh' ... \| xargs shellcheck -x` | Shell script validation |
| Script | Command | Purpose |
| -------------- | ---------------------------------------------------------------------------------------------------- | -------------------------- |
| `format:check` | `prettier --check .` | Code formatting validation |
| `lint` | `eslint . --ext .js` | Code quality validation |
| `test` | `jest --runInBand` | Unit test execution |
| `shellcheck` | `find script -name '*.sh' -type f \| grep -vFf script/.shellcheck-exclude \| xargs -r shellcheck -x` | Shell script validation |

Additional test commands: `test:integration` (BATS), `test:coverage` (Jest + coverage), `test:all` (unit + integration)

Expand All @@ -142,4 +145,13 @@ Additional test commands: `test:integration` (BATS), `test:coverage` (Jest + cov
| `pre_exit_plan_ai_review.py` | Pre ExitPlanMode | AI review before plan exit |
| `stop_test_verification.py` | Stop | Verify test results on session end |

## Development Standards

### Code Quality Requirements

- **Test-Driven Development (TDD)**: Red -> Green -> Refactor methodology with 70%+ line coverage requirement
- **Static Quality Gates**: Automated linting, formatting, security analysis, and license checking
- **Git Workflow**: Conventional commits, branch naming conventions, and pull request requirements
- **Release Types Required for Tooling Changes**: Commits that touch `.codex/**`, `.devcontainer/codex*`, `package*.json`, or `npm/global.json` must use release-triggering types (`feat` / `fix` / `perf` / `revert` / `docs`). commitlint blocks `chore` etc. to align with semantic-release.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Release-type rule text overstates docs behavior

This line says docs is release-triggering for tooling changes, but current semantic-release rules only release docs when scope is README. This can mislead contributors into thinking any docs commit on tooling paths will release.

Suggested wording fix
-- **Release Types Required for Tooling Changes**: Commits that touch `.codex/**`, `.devcontainer/codex*`, `package*.json`, or `npm/global.json` must use release-triggering types (`feat` / `fix` / `perf` / `revert` / `docs`). commitlint blocks `chore` etc. to align with semantic-release.
+- **Release Types Required for Tooling Changes**: Commits that touch `.codex/**`, `.devcontainer/codex*`, `package*.json`, or `npm/global.json` must use release-triggering types (`feat` / `fix` / `perf` / `revert`). Note: `docs` triggers release only when scope is `README` per `.releaserc.json`.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- **Release Types Required for Tooling Changes**: Commits that touch `.codex/**`, `.devcontainer/codex*`, `package*.json`, or `npm/global.json` must use release-triggering types (`feat` / `fix` / `perf` / `revert` / `docs`). commitlint blocks `chore` etc. to align with semantic-release.
- **Release Types Required for Tooling Changes**: Commits that touch `.codex/**`, `.devcontainer/codex*`, `package*.json`, or `npm/global.json` must use release-triggering types (`feat` / `fix` / `perf` / `revert`). Note: `docs` triggers release only when scope is `README` per `.releaserc.json`.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` at line 155, The sentence listing release-triggering commit types
overstates docs behavior; update the wording for the rule that mentions
".codex/**", ".devcontainer/codex*", "package*.json", and "npm/global.json" so
it only treats docs as release-triggering when the commit uses the README scope
(e.g., change "docs" to "docs (only when scope is README)" or equivalent
clarification), ensuring contributors won't assume any docs commit touching
those tooling paths will trigger a release.


<!-- END AUTO-GENERATED -->
Loading