Skip to content
Merged
Show file tree
Hide file tree
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
1 change: 0 additions & 1 deletion .devcontainer/claude-settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@

"Bash(npm install)",
"Bash(npm install:*)",
"Bash(npm run build:*)",
"Bash(npm run dev:*)",
"Bash(npm run lint)",
"Bash(npm run lint:*)",
Expand Down
6 changes: 0 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,3 @@ jobs:

- name: Run tests
run: npm run test

- name: Build
run: npm run build

- name: Validate configuration
run: npm run validate
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ Run the `commit_changes.sh` script with `REPO_PATH` set to this repository to ch
### Updating Codex & Claude Tooling

- Run `npm run update:libs` (wrapper for `script/update-libraries.sh`) to refresh npm devDependencies together with Codex/Claude Code CLI definitions captured in `npm/global.json`.
- The script performs `npm-check-updates`, `npm install`, rebuilds the `dist/` artifacts, and re-synchronizes global CLI versions via `npm view <package> version`.
- The script performs `npm-check-updates`, `npm install`, and re-synchronizes global CLI versions via `npm view <package> version` before running lint/tests to verify the updated toolchain.
- Packages that currently require newer Node.js releases (`semantic-release`, `@semantic-release/github`) are excluded by default. Override the exclusion list with `UPDATE_LIBS_REJECT="pkg1,pkg2" npm run update:libs` when you are ready to bump them.
- `.github/workflows/update-libraries.yml` executes the same script weekly and opens a PR whenever it produces changes, ensuring Codex/Claude Code tooling stays current without manual effort.
- Commits that touch release-critical files (`package*.json`, `npm/global.json`, `.devcontainer/codex*`, `.codex/**`) **must** use a release-triggering Conventional Commit type (`feat`, `fix`, `perf`, `revert`, or `docs`). Commitlint enforces this so semantic-release can publish automatically when tooling versions change.
Expand Down
12 changes: 4 additions & 8 deletions issues/refactor-decouple-batch-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,11 @@ Tracked with `.codex/prompts/refactor:decouple.md`. Each issue captures one deco

---

## Issue 3: Share validation modules between build and validate scripts
## Issue 3: ✅ Removed redundant Node build/validate scripts

- **Files**: `scripts/build.js:46-218`, `scripts/validate.js:23-205`
- **Coupling problem**: `ConfigBuilder` reimplements configuration, script, and security validators that already exist in `ConfigValidator`. Both classes depend on the same file layout but cannot reuse logic because everything is embedded in monolithic methods, leading to drift and duplicated bug fixes.
- **Plan**:
1. Extract the validation rules into composable modules (e.g., `lib/validators/configFiles.js`, `lib/validators/security.js`) that expose pure functions returning findings.
2. Change both `ConfigBuilder` and `ConfigValidator` to compose these modules instead of maintaining their own copies.
3. Provide a lightweight registry so additional validators can be added without editing both entrypoints.
- **Definition of Done**: There is a single source of truth for each validation rule, both CLI commands import it, and tests cover the shared modules.
- **Status**: Completed by removing `scripts/build.js` and `scripts/validate.js`, along with their `npm` hooks and CI steps.
- **Context**: The two files duplicated the Jest tests, re-running lint/test pipelines and generating unused `dist/` artifacts. Keeping both copies introduced maintenance overhead without delivering additional coverage.
- **Follow-up**: Configuration verification now relies on the Jest suite plus shell scripts. No further action needed unless a new Node-based CLI is reintroduced.

---

Expand Down
2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
"test": "jest --runInBand",
"test:watch": "jest --runInBand --watch",
"test:coverage": "jest --runInBand --coverage",
"build": "node scripts/build.js",
"validate": "node scripts/validate.js",
"update:libs": "bash script/update-libraries.sh",
"prepare": "husky"
},
Expand Down
5 changes: 3 additions & 2 deletions script/update-libraries.sh
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ else
log "Skipping global CLI manifest update (missing $GLOBAL_FILE or jq)"
fi

log "Running build pipeline (includes lint + tests)"
npm run build
log "Running verification pipeline (lint + tests)"
npm run lint
npm test

log "Library update complete"
274 changes: 0 additions & 274 deletions scripts/build.js

This file was deleted.

Loading