@davidorex/pi-project-workflows 0.14.4 → 0.14.6

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidorex/pi-project-workflows",
3
- "version": "0.14.4",
3
+ "version": "0.14.6",
4
4
  "description": "Pi extensions for structured project state, workflow orchestration, and behavior monitoring — single install for all three",
5
5
  "license": "MIT",
6
6
  "author": "David Ryan",
@@ -29,8 +29,8 @@
29
29
  ]
30
30
  },
31
31
  "dependencies": {
32
- "@davidorex/pi-project": "^0.14.4",
33
- "@davidorex/pi-workflows": "^0.14.4",
34
- "@davidorex/pi-behavior-monitors": "^0.14.4"
32
+ "@davidorex/pi-project": "^0.14.6",
33
+ "@davidorex/pi-workflows": "^0.14.6",
34
+ "@davidorex/pi-behavior-monitors": "^0.14.6"
35
35
  }
36
36
  }
@@ -131,32 +131,31 @@ write structured findings to JSON files for downstream consumption.
131
131
  </objective>
132
132
 
133
133
  <monitor_locations>
134
- Monitors are discovered from two locations, checked in order:
134
+ Monitors are discovered from three tiers, checked in precedence order; the first match
135
+ by `monitor.name` wins:
135
136
 
136
- 1. **Project**: `.pi/monitors/*.monitor.json` (walks up from cwd to find `.pi/`)
137
+ 1. **Project**: `.pi/monitors/*.monitor.json` (walks up from cwd to find `.pi/`, stops at the `.git` boundary)
137
138
  2. **Global**: `~/.pi/agent/monitors/*.monitor.json` (via `getAgentDir()`)
139
+ 3. **Bundled**: `<package>/examples/*.monitor.json` (the five built-in defaults that ship with the extension)
138
140
 
139
- Project monitors take precedence if a project monitor has the same `name` as a global
140
- one, the global monitor is ignored. The extension silently exits if zero monitors are
141
- discovered after checking both locations.
141
+ When a higher-precedence tier shadows a same-name monitor in a lower tier, the override
142
+ is logged once at session_start so drift is visible. The extension silently exits if
143
+ zero monitors are discovered across all three tiers.
142
144
  </monitor_locations>
143
145
 
144
- <seeding>
145
- On first run in a project, the extension seeds bundled example monitors into
146
- `.pi/monitors/` if ALL of the following are true:
146
+ <overrides>
147
+ To customize a bundled monitor, create `.pi/monitors/<name>.monitor.json` (and its
148
+ `.patterns.json` and `.instructions.json` sidecars) in your project. The override fully
149
+ replaces the bundled version by name. Per-monitor template subdirectories (e.g.,
150
+ `fragility/classify.md`) follow the same multi-tier search via
151
+ `createMonitorAgentTemplateEnv`, so an override directory tree mirrors the bundled
152
+ layout.
147
153
 
148
- - `discoverMonitors()` finds zero monitors (neither project nor global)
149
- - The `examples/` directory exists in the extension package
150
- - The target `.pi/monitors/` directory contains no `.monitor.json` files
151
-
152
- Seeding copies all `.json` files from `examples/` (monitor definitions, patterns, and
153
- instructions files) into `.pi/monitors/`. It skips files that already exist at the
154
- destination. The user is notified: "Edit or delete them to customize."
155
-
156
- To customize seeded monitors, edit the copies in `.pi/monitors/` directly. To remove a
157
- bundled monitor, delete its three files (`.monitor.json`, `.patterns.json`,
158
- `.instructions.json`). Seeding never re-runs once any monitors exist.
159
- </seeding>
154
+ Delete the override to revert to bundled behavior — bundled updates are picked up
155
+ automatically on the next session because tier 3 reads the package examples directly,
156
+ not a copied snapshot. This replaces the prior copy-on-first-run pattern that left
157
+ seeded `.pi/monitors/` files frozen at the package version they were seeded from.
158
+ </overrides>
160
159
 
161
160
  <file_structure>
162
161
  Each monitor is a set of files sharing a name prefix:
@@ -468,7 +467,8 @@ for other extensions or workflows to invoke classification directly.
468
467
  </commands>
469
468
 
470
469
  <bundled_monitors>
471
- Five example monitors ship in `examples/` and are seeded on first run. Each has a
470
+ Five example monitors ship in `examples/` and load directly from the package as the
471
+ third discovery tier. Each has a
472
472
  Nunjucks classify template in `examples/<name>/classify.md` with iteration-aware
473
473
  acknowledgment support:
474
474