@exaudeus/workrail 3.73.0 → 3.73.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -345,6 +345,18 @@ For explicit status on the major older planning docs themselves, see `docs/roadm
345
345
  - output categorization (did / doing / blockers) and configurable format
346
346
  - **Source doc**: `docs/ideas/backlog.md`
347
347
 
348
+ ### Multi-site pattern omission detection in MR review
349
+
350
+ - **Status**: parked idea, needs design
351
+ - **Problem**: the `wr.mr-review` workflow does not reliably catch omission bugs where a change extends a multi-site pattern but fails to update all expression sites. Examples: adding a new artifact type to one loop but missing three other loops that enumerate the same set; adding a new CLI subcommand but missing the help text, the tab-completion registry, and the docs page. In typed languages this is caught at compile time via exhaustive pattern matching. In dynamic codebases (bash, Python, config-driven systems) there is no compiler -- the omission is invisible in the diff because the un-updated sites are simply absent.
352
+ - **Why the current workflow misses it**: reviewer families (`correctness_invariants`, `patterns_architecture`, etc.) focus on what is in the diff. Omission sites are not in the diff by definition. The `missed_issue_hunter` prompt is open-ended and does not include a systematic "find sibling expression sites" sub-task. Phase 0b's scope gate relies on acceptance criteria from the ticket, which are often absent for internal tooling changes.
353
+ - **Proposed fix**: add a general "multi-site pattern extension" detection pass, not specific to any codebase or pattern type. The structural fingerprint: the diff adds something to a list, loop, switch, registry, or schema -- and that enumerable set has sibling instances elsewhere in the codebase that were not touched. Detection algorithm: (1) identify what was added in the diff, (2) search the codebase for other files containing the existing members of the same set, (3) flag unmodified files that enumerate those members as candidate omission sites. This is a grep-based mechanical check that works in any language or toolchain. The result feeds the fact packet and `missed_issue_hunter` as a first-class sub-task.
354
+ - **Key design questions**:
355
+ - where in the workflow this detection should run (Phase 0 classification, Phase 2 fact packet build, or as a mandatory `missed_issue_hunter` sub-task)
356
+ - how to avoid false positives when the same string appears in unrelated contexts (e.g. the word "docs" in a README vs. a loop enumerating artifact types)
357
+ - whether this should be a standalone routine (like `routine-context-gathering`) that can be invoked from multiple workflows
358
+ - **Source**: observed during `feat/scripts-artifact-type` MR review in common-ground (April 2026) -- `consolidate.sh`, `make rollback`, and `make list-installed` were not updated because none contained the diff's changed files, and no reviewer family checked for sibling enumeration sites
359
+
348
360
  ### Derived / overlay workflows for bundled workflow specialization
349
361
 
350
362
  - **Status**: parked idea, related to platform vision (future phase)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exaudeus/workrail",
3
- "version": "3.73.0",
3
+ "version": "3.73.1",
4
4
  "description": "Step-by-step workflow enforcement for AI agents via MCP",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -50,6 +50,7 @@
50
50
  "validate:workflow-discovery": "node scripts/validate-workflow-discovery.js",
51
51
  "validate:feature-coverage": "node scripts/validate-feature-coverage.js",
52
52
  "validate:authoring-coverage": "node scripts/validate-authoring-coverage.js",
53
+ "backlog": "npx ts-node --project scripts/tsconfig.json scripts/backlog-priority.ts",
53
54
  "precommit": "npm run validate:registry",
54
55
  "preinstall": "node -e \"const v=parseInt(process.versions.node.split('.')[0],10); if(v<20){console.error('WorkRail requires Node.js >=20. Current: '+process.versions.node+'\\nPlease upgrade: https://nodejs.org/'); process.exit(1);}\"",
55
56
  "dev:mcp": "pkill -f \"$(pwd)/dist/mcp-server.js\" 2>/dev/null; sleep 0.5; WORKRAIL_TRANSPORT=http WORKRAIL_ENABLE_SESSION_TOOLS=true node dist/mcp-server.js",