文件最后提交记录最后更新时间
fix(goal-driver): 确认审计发现问题后自动进入完整审计循环 - runConfirmAudit改为返回hasIssues布尔值 - runFromExecute/runFromPlan根据确认审计结果决定直接完成或进入审计循环 3 小时前
chore(tools): add ast-grep Java lint rules and pre-commit hook - 新增3条 ast-grep 规则:空 catch、getMessage-only、裸 RuntimeException - 新增 sgconfig.yml 和 run-java-lint.sh 包装脚本 - 更新 package.json 添加 @ast-grep/cli 依赖和 lint:java 脚本 - 更新 README.md 添加规则索引和激活说明 - 新增 .githooks/pre-commit 钩子,提交前自动检查暂存的 .java 文件 6 天前
chore(tools): 新增check-plan-checklist工具 + 增强check-doc-links源码路径检查 - 新增 check-plan-checklist.mjs:验证 plan checklist 全部勾选和 Closure Evidence - check-doc-links.mjs:扩展 BACKTICK_PATH_RE 支持 .properties/.sql/.graphql 等 15 种扩展名 - check-doc-links.mjs:BACKTICK_DIR_RE 动态构建,覆盖所有模块源码目录 - check-doc-links.mjs:新增 AGENTS.md/README.md 到扫描范围 - check-doc-links.mjs:draft/pending plan 的 broken link 降级为 warning - check-doc-links.mjs:跳过 _tmp/、src/main/java 等非路径引用 - check-doc-links.mjs:docs-for-ai 引用模块源码目录不再算越界 - tools 项目改造为 pnpm 管理的 Node.js 项目 7 天前
feat(tools): 增加模型xml批量转xlsx脚本 - 新增按项目列表批量转换 model/*.orm.xml 和 model/*.api.xml 的 sh 工具 - 补充工具说明,方便批量回写源模型对应的 xlsx 文件 1 天前
chore(tools): 新增 check-doc-index.mjs 索引审计工具及文档 - 新增 check-doc-index.mjs:审计 docs-for-ai/ 和 ai-dev/ 索引结构健康度 - 检查项:索引死链、孤儿文件、缺失子索引、重复规则、索引同步、日志索引同步 - 支持 --fix 自动修复索引同步问题,--strict 严格模式 - 更新 tools/README.md 工具文档 1 天前
chore(tools): 新增check-plan-checklist工具 + 增强check-doc-links源码路径检查 - 新增 check-plan-checklist.mjs:验证 plan checklist 全部勾选和 Closure Evidence - check-doc-links.mjs:扩展 BACKTICK_PATH_RE 支持 .properties/.sql/.graphql 等 15 种扩展名 - check-doc-links.mjs:BACKTICK_DIR_RE 动态构建,覆盖所有模块源码目录 - check-doc-links.mjs:新增 AGENTS.md/README.md 到扫描范围 - check-doc-links.mjs:draft/pending plan 的 broken link 降级为 warning - check-doc-links.mjs:跳过 _tmp/、src/main/java 等非路径引用 - check-doc-links.mjs:docs-for-ai 引用模块源码目录不再算越界 - tools 项目改造为 pnpm 管理的 Node.js 项目 7 天前
chore(tools): 新增check-plan-checklist工具 + 增强check-doc-links源码路径检查 - 新增 check-plan-checklist.mjs:验证 plan checklist 全部勾选和 Closure Evidence - check-doc-links.mjs:扩展 BACKTICK_PATH_RE 支持 .properties/.sql/.graphql 等 15 种扩展名 - check-doc-links.mjs:BACKTICK_DIR_RE 动态构建,覆盖所有模块源码目录 - check-doc-links.mjs:新增 AGENTS.md/README.md 到扫描范围 - check-doc-links.mjs:draft/pending plan 的 broken link 降级为 warning - check-doc-links.mjs:跳过 _tmp/、src/main/java 等非路径引用 - check-doc-links.mjs:docs-for-ai 引用模块源码目录不再算越界 - tools 项目改造为 pnpm 管理的 Node.js 项目 7 天前
docs: 更新AGENTS.md和docs-for-ai文档及工具脚本 - AGENTS.md新增调试和诊断文档链接 - 更新docs-for-ai INDEX和多个指南文档 - 新增check-i18n-en-xml.mjs检查脚本 - 更新ai-dev/logs索引 1 天前
chore(tools): 新增check-plan-checklist工具 + 增强check-doc-links源码路径检查 - 新增 check-plan-checklist.mjs:验证 plan checklist 全部勾选和 Closure Evidence - check-doc-links.mjs:扩展 BACKTICK_PATH_RE 支持 .properties/.sql/.graphql 等 15 种扩展名 - check-doc-links.mjs:BACKTICK_DIR_RE 动态构建,覆盖所有模块源码目录 - check-doc-links.mjs:新增 AGENTS.md/README.md 到扫描范围 - check-doc-links.mjs:draft/pending plan 的 broken link 降级为 warning - check-doc-links.mjs:跳过 _tmp/、src/main/java 等非路径引用 - check-doc-links.mjs:docs-for-ai 引用模块源码目录不再算越界 - tools 项目改造为 pnpm 管理的 Node.js 项目 7 天前
docs: 新增Plan 51、import排序脚本和开发日志 - 新增Plan 51: nop-stream剩余缺陷收口(已completed) - 新增ai-dev/tools/check-import-order.sh验证脚本 - 更新ai-dev/logs/2026/05-25.md记录Plan 51执行详情 8 天前
feat(orm): 传播模块菜单图标并补齐图标检查 - 为 source model/*.orm.xml 根节点补齐 ext:icon 并生成 module-meta.json - ORM web 模板改为从 module-meta.json 读取 TOPM 图标并更新相关产物 - 扩展图标检查覆盖 root orm 与手写 TOPM/SUBM 菜单并同步文档计划日志 1 天前
chore(tools): 新增check-plan-checklist工具 + 增强check-doc-links源码路径检查 - 新增 check-plan-checklist.mjs:验证 plan checklist 全部勾选和 Closure Evidence - check-doc-links.mjs:扩展 BACKTICK_PATH_RE 支持 .properties/.sql/.graphql 等 15 种扩展名 - check-doc-links.mjs:BACKTICK_DIR_RE 动态构建,覆盖所有模块源码目录 - check-doc-links.mjs:新增 AGENTS.md/README.md 到扫描范围 - check-doc-links.mjs:draft/pending plan 的 broken link 降级为 warning - check-doc-links.mjs:跳过 _tmp/、src/main/java 等非路径引用 - check-doc-links.mjs:docs-for-ai 引用模块源码目录不再算越界 - tools 项目改造为 pnpm 管理的 Node.js 项目 7 天前
docs(plans): 回填15个历史completed plan的Closure Audit Evidence + 修复工具evidence检测 - 15个completed plan补充retroactive Closure Audit Evidence - check-plan-checklist.mjs: 放宽evidence检测,匹配多种格式 - check-plan-checklist.mjs: --strict只对completed plan返回exit 1 - 所有completed plan现在通过 --strict 验证(0 issues) 7 天前
fix(goal-driver): 修复智能恢复的4个关键问题 - runFromPlan/Execute 后改为单轮确认审计(runConfirmAudit),不再进入完整 runFromAudit 循环 - isActive 排除 deferred 状态,防止误执行延后的计划 - detectStartPhase 改为 JS 层直接运行脚本,消除 LLM 幻觉风险 - execute prompt 增加: 跳过 deferred 计划、跳过已勾选 [x] 的 Phase 14 小时前
refactor(code): 迁移增量检测到VFS抽象层 - 删除IncrementalDetector/ManifestStore中Path-based方法,只保留IResource版本 - 删除PathFingerprintStore(已被OrmFingerprintStore替代) - 删除DigestHelper.sha256Hex(Path)方法 - ProjectAnalyzer添加matchesFilePattern()支持复杂glob模式 - 修复analyzeIncremental中deletedPaths与updatedFileMap键不匹配 - CodeIndexService删除旧Path增量检测逻辑,添加resolveVfsPath() - 修复indexDirectory的filePattern匹配(支持**/*.java) - 新增check-vfs-violations.mjs白名单机制(4个豁免文件) - Plan 101完成 1 天前
chore(tools): 新增check-plan-checklist工具 + 增强check-doc-links源码路径检查 - 新增 check-plan-checklist.mjs:验证 plan checklist 全部勾选和 Closure Evidence - check-doc-links.mjs:扩展 BACKTICK_PATH_RE 支持 .properties/.sql/.graphql 等 15 种扩展名 - check-doc-links.mjs:BACKTICK_DIR_RE 动态构建,覆盖所有模块源码目录 - check-doc-links.mjs:新增 AGENTS.md/README.md 到扫描范围 - check-doc-links.mjs:draft/pending plan 的 broken link 降级为 warning - check-doc-links.mjs:跳过 _tmp/、src/main/java 等非路径引用 - check-doc-links.mjs:docs-for-ai 引用模块源码目录不再算越界 - tools 项目改造为 pnpm 管理的 Node.js 项目 7 天前
docs(nop-code): 深度审计报告、修复计划和开发日志 - 新增ai-dev/audits/2026-05-25-deep-audit-nop-code-full/完整审计报告(20维度78发现) - 新增ai-dev/plans/55-nop-code-deep-audit-remediation.md修复计划(5阶段) - 新增ai-dev/skills/nop-code/审计技能模板 - 更新ai-dev/logs/2026/05-26.md开发日志 - 删除旧版nop-code-audit-prompt.md(已迁移到skills/nop-code/) 8 天前
feat(tools): 增加模型xml批量转xlsx脚本 - 新增按项目列表批量转换 model/*.orm.xml 和 model/*.api.xml 的 sh 工具 - 补充工具说明,方便批量回写源模型对应的 xlsx 文件 1 天前
feat(ai-dev): add goal driver tools - opencode-goal-driver: goal-driven agent loop tool - crontab-scheduler: YAML-based cron job scheduler - run-goal-driver scripts for local/test/prod execution - add js-yaml dependency for YAML parsing 1 天前
feat(ai-dev): add goal driver tools - opencode-goal-driver: goal-driven agent loop tool - crontab-scheduler: YAML-based cron job scheduler - run-goal-driver scripts for local/test/prod execution - add js-yaml dependency for YAML parsing 1 天前
feat(tools): 增加模型xml批量转xlsx脚本 - 新增按项目列表批量转换 model/*.orm.xml 和 model/*.api.xml 的 sh 工具 - 补充工具说明,方便批量回写源模型对应的 xlsx 文件 1 天前
chore: 更新工具配置 - package.json添加scan-hollow-implementations脚本 - 新增scan-hollow-implementations.mjs空实现扫描工具 1 天前
feat(ai-dev): add goal driver tools - opencode-goal-driver: goal-driven agent loop tool - crontab-scheduler: YAML-based cron job scheduler - run-goal-driver scripts for local/test/prod execution - add js-yaml dependency for YAML parsing 1 天前
feat(ai-dev): add goal driver tools - opencode-goal-driver: goal-driven agent loop tool - crontab-scheduler: YAML-based cron job scheduler - run-goal-driver scripts for local/test/prod execution - add js-yaml dependency for YAML parsing 1 天前
feat(ai-dev): add goal driver tools - opencode-goal-driver: goal-driven agent loop tool - crontab-scheduler: YAML-based cron job scheduler - run-goal-driver scripts for local/test/prod execution - add js-yaml dependency for YAML parsing 1 天前
chore(tools): add ast-grep Java lint rules and pre-commit hook - 新增3条 ast-grep 规则:空 catch、getMessage-only、裸 RuntimeException - 新增 sgconfig.yml 和 run-java-lint.sh 包装脚本 - 更新 package.json 添加 @ast-grep/cli 依赖和 lint:java 脚本 - 更新 README.md 添加规则索引和激活说明 - 新增 .githooks/pre-commit 钩子,提交前自动检查暂存的 .java 文件 6 天前
chore: 更新工具配置 - package.json添加scan-hollow-implementations脚本 - 新增scan-hollow-implementations.mjs空实现扫描工具 1 天前
chore(tools): add ast-grep Java lint rules and pre-commit hook - 新增3条 ast-grep 规则:空 catch、getMessage-only、裸 RuntimeException - 新增 sgconfig.yml 和 run-java-lint.sh 包装脚本 - 更新 package.json 添加 @ast-grep/cli 依赖和 lint:java 脚本 - 更新 README.md 添加规则索引和激活说明 - 新增 .githooks/pre-commit 钩子,提交前自动检查暂存的 .java 文件 6 天前
README.md

ai-dev/tools/

AI-assisted development tools for nop-entropy. A self-contained pnpm project.

Quick Start

cd ai-dev/tools
pnpm install       # first time only
pnpm check         # run all checks

Tool Index

Script Purpose Usage
check-doc-links.mjs Check docs-for-ai/ and ai-dev/ markdown path references pnpm check:doc-links
check-doc-index.mjs Audit doc index health: broken links, orphans, missing sub-indexes, duplicated rules, sync drift node ai-dev/tools/check-doc-index.mjs [--fix] [--strict]
check-i18n-en-xml.mjs Check i18n-en:* attributes in *.xml and *.xmeta for non-English or suspicious values node ai-dev/tools/check-i18n-en-xml.mjs [--strict]
convert-model-xml-to-xlsx.sh Batch convert source model/*.orm.xml and model/*.api.xml to sibling *.xlsx files for configured projects bash ai-dev/tools/convert-model-xml-to-xlsx.sh
check-import-order.mjs Check Java import grouping: java.* → jakarta.* → third-party → io.nop.* pnpm check:import-order
check-oversized-files.mjs Detect oversized source files (>500 lines warn, >700 error) pnpm check:oversized
check-docs-garbled.mjs Detect garbled/corrupted Unicode in documentation pnpm check:garbled
code-stats.mjs Per-module code statistics (files, LOC, test ratio) pnpm stats
check-plan-checklist.mjs Verify all plan checklist items are checked before closure pnpm check:plan
codex-module-driver.sh Launch codex TUI with module-specific goal prompt ./codex-module-driver.sh nop-stream
run-java-lint.sh Run ast-grep Java lint rules (empty catches, getMessage-only, bare RuntimeException, etc.) pnpm lint:java

Per-Tool Details

check-doc-links.mjs

Checks markdown files for broken path references (backtick paths and [link](path) syntax).

node check-doc-links.mjs              # report only
node check-doc-links.mjs --strict     # exit 1 on errors (CI mode)

Skip rules: placeholder paths (Xxx), _gen/ files, ai-dev/logs/, completed plans, and a configurable whitelist.

check-doc-index.mjs

Audits docs-for-ai/ and ai-dev/ index health.

node ai-dev/tools/check-doc-index.mjs           # check only
node ai-dev/tools/check-doc-index.mjs --fix     # auto-fix sync issues
node ai-dev/tools/check-doc-index.mjs --strict  # exit 1 on errors

Checks performed:

  • Broken index links
  • Orphan markdown files not referenced by any index
  • Missing README.md in directories with many markdown files
  • Duplicated routing rules across docs
  • Sync drift between docs-for-ai/INDEX.md and docs-for-ai/00-start-here/ai-defaults.md
  • Sync drift in ai-dev/logs/index.md

Writes a report to _tmp/doc-index-audit-{timestamp}.md and prints the summary to stdout.

check-i18n-en-xml.mjs

Checks i18n-en:* attributes in repository *.xml and *.xmeta files.

Temporary or derived directories such as target/, _tmp/, and _dump/ are skipped by default.

node ai-dev/tools/check-i18n-en-xml.mjs           # report issues
node ai-dev/tools/check-i18n-en-xml.mjs --strict  # exit non-zero on errors

Checks performed:

  • error: empty values, Chinese text, values with no English letters, or incomplete labels such as View, Add, Edit, Update, Query, Modify
  • warn: common spelling or style issues such as Worflow, CamlCase, TableName, Sql, Oauth

Writes reports to _tmp/i18n-en-xml-report.json and _tmp/i18n-en-xml-report.md.

convert-model-xml-to-xlsx.sh

Uses ai-dev/tools/model-convert-projects.txt as the configured project list, finds source model/*.orm.xml and model/*.api.xml, and converts each to a sibling *.xlsx file via nop-cli convert.

bash ai-dev/tools/convert-model-xml-to-xlsx.sh

Validation rules:

  1. Each nop-cli convert invocation must return exit code 0.
  2. The expected output file must exist.
  3. Any failed conversion makes the whole script exit non-zero and prints the failed entries.

check-import-order.mjs

Verifies Java import ordering convention: java.* → jakarta.* → third-party → io.nop.*.

node check-import-order.mjs                       # all modules
node check-import-order.mjs --module nop-stream   # single module
node check-import-order.mjs --fix                 # show fix hints

Migrated from check-import-order.sh (original shell script preserved for reference).

check-oversized-files.mjs

Finds Java files exceeding size thresholds. Defaults: warn at 500, error at 700 lines.

node check-oversized-files.mjs                          # defaults
node check-oversized-files.mjs --module nop-stream      # single module
node check-oversized-files.mjs --warn 400 --error 600   # custom thresholds

Adapted from nop-chaos-flux/scripts/check-oversized-code-files.mjs.

check-docs-garbled.mjs

Scans docs-for-ai/ and ai-dev/ for garbled Unicode: mojibake, zero-width chars, BOM, control chars.

node check-docs-garbled.mjs

Reports written to _tmp/docs-garbled-check/. Exit 1 if likely-garbled files found.

Adapted from nop-chaos-flux/scripts/check-docs-garbled.mjs.

code-stats.mjs

Per-module Java code statistics: file counts, LOC breakdown (code/comment/blank), test-to-source ratio.

node code-stats.mjs                        # all modules
node code-stats.mjs --module nop-stream    # single module

Adapted from nop-chaos-flux/scripts/code-stats.mjs.

check-plan-checklist.mjs

Verifies that plan files in ai-dev/plans/ have all checklist items checked ([x]) before the plan can be marked as completed. Also checks for Closure Evidence.

node check-plan-checklist.mjs                                    # all plans
node check-plan-checklist.mjs 57-nop-stream-code-cleanup.md      # single plan
node check-plan-checklist.mjs --strict                            # exit 1 on any failures
node check-plan-checklist.mjs --verbose                           # show passing plans too

Checks performed:

  • All - [ ] items must be - [x] if plan status is completed
  • Each Phase/Workstream section is analyzed for unchecked items
  • Closure Gates must be fully checked
  • Closure Evidence must be present in the Closure section
  • Draft/pending plan broken links are reported as warnings, not errors

Required by: ai-dev/plans/00-plan-authoring-and-execution-guide.md (Rule #26), ai-dev/skills/codex-goal-driven-development-prompt.md (C-4.1, C-4.2, C-6).

run-java-lint.sh (ast-grep rules)

Uses ast-grep (based on tree-sitter AST) to lint Java code for anti-patterns. Rules are YAML files in rules/.

pnpm lint:java                                          # scan entire project
pnpm lint:java nop-ai                                   # scan a module
pnpm lint:java --filter empty-catch                       # run a subset of rules
pnpm lint:java --report-style medium                     # compact output

Available rules (in rules/):

Rule file Checks for
java-lint-empty-catch.yml Empty catch (X e) {} blocks that silently swallow exceptions
java-lint-getmessage-only.yml Catch blocks that use e.getMessage() but don't pass e to logger or rethrow
java-lint-bare-runtimeexception.yml throw new RuntimeException(...) — should use NopException subclass

Pre-commit hook: Staged .java files are automatically checked before each commit.

git config core.hooksPath .githooks       # activate (one-time setup per clone)

The hook lives at .githooks/pre-commit (project root), uses ai-dev/tools/ rules. Use --error mode so lint findings block the commit; bypass with git commit --no-verify.

Adding new rules:

  1. Create rules/java-lint-<name>.yml
  2. Run pnpm lint:java --filter <name> to test
  3. Rules auto-discovered from rules/ directory

Design: Each rule is a standalone YAML file. Rules can be composed (any/all/not) for complex patterns. No JS coding needed.

Adding New Tools

  1. Create your-tool.mjs in ai-dev/tools/
  2. Add script entry to package.json under "scripts"
  3. Register in the Tool Index table above
  4. Get PROJECT_ROOT via: const PROJECT_ROOT = new URL('../../..', import.meta.url).pathname;
  5. If you need external deps: pnpm add <package>