@webpieces/rules-config 0.3.292 → 0.3.293

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": "@webpieces/rules-config",
3
- "version": "0.3.292",
3
+ "version": "0.3.293",
4
4
  "description": "Shared webpieces.config.json loader. Single source of truth for validation rule configuration consumed by @webpieces/ai-hook-rules, @webpieces/code-rules, and @webpieces/nx-webpieces-rules.",
5
5
  "type": "commonjs",
6
6
  "main": "./src/index.js",
@@ -44,9 +44,14 @@ by the `redirect-how-to-merge-main` guard.
44
44
 
45
45
  A sync does its work on a transient `<feature>Squash` branch and, when it finishes, force-pushes and
46
46
  **renames back to `<feature>`** — so your local branch, `origin/<feature>`, and the PR head are always
47
- the *same* name. There is no `wpN` generation suffix to reconcile. Each sync also leaves a numbered
48
- pre-merge snapshot — `<feature>PreMerge`, `<feature>PreMerge2`, … — a local trail you can diff against
49
- or delete (`git branch --list '<feature>PreMerge*'`); they are not auto-pruned.
47
+ the *same* name. There is no `wpN` generation suffix to reconcile.
48
+
49
+ Each sync takes a pre-merge snapshot `<feature>PreMerge<n>` (numbered from 1) paired 1:1 with a
50
+ conflict-context folder `.webpieces/merge-info/<slug>/merge-<n>/` under the same number. A **clean**
51
+ sync auto-removes its snapshot and leaves no folder (no undo point needed). A **conflict** sync KEEPS
52
+ the matched pair — `<feature>PreMerge<n>` to diff/bail against, and `merge-<n>/` holding that merge's
53
+ 3-point context — so merge N never reuses merge N-1's files. List the trail with
54
+ `git branch --list '<feature>PreMerge*'`; snapshots are not auto-pruned (only clean ones self-delete).
50
55
 
51
56
  ## Two possible outcomes of a squash-update
52
57
 
@@ -59,11 +64,12 @@ decides who does the work.
59
64
  ```
60
65
  you: pnpm wp-update-start
61
66
  tool: assertCleanTree # you must have committed your own work first
62
- tool: snapshot pre-merge state -> <feature>PreMerge[N] (numbered trail, never overwritten)
67
+ tool: snapshot pre-merge state -> <feature>PreMerge<n> (numbered from 1)
63
68
  tool: checkout main; pull; create transient <feature>Squash off main
64
69
  tool: git merge --squash <feature> # SUCCEEDS — stages the combined result
65
70
  tool: git commit -m "Squash merge of <feature>" # <-- the TOOL commits (mechanical)
66
71
  tool: force-push to origin/<feature>; rename <feature>Squash back to <feature>
72
+ tool: delete <feature>PreMerge<n> # clean merge -> snapshot not needed
67
73
  done — you are on <feature> again (== origin/<feature> == PR head; names always match).
68
74
  ```
69
75
 
@@ -74,9 +80,9 @@ commits exactly that. The commit is a pure function of your already-committed wo
74
80
 
75
81
  ```
76
82
  you: pnpm wp-update-start
77
- tool: assertCleanTree; snapshot -> <feature>PreMerge[N]; checkout main; pull; create <feature>Squash
83
+ tool: assertCleanTree; snapshot -> <feature>PreMerge<n>; checkout main; pull; create <feature>Squash
78
84
  tool: git merge --squash <feature> # CONFLICTS — conflicted files left with markers
79
- tool: writes .webpieces/merge-info/<feature>/ (A=fork / B=feature / C=main context + diffs)
85
+ tool: writes .webpieces/merge-info/<slug>/merge-<n>/ (A=fork / B=feature / C=main context + diffs; kept, paired with PreMerge<n>)
80
86
  tool: writes .webpieces/instruct-ai/webpieces.mergeprocess.md, then exits (code 2)
81
87
  ---- hand-off to the AI (you are on the transient <feature>Squash branch) ----
82
88
  AI: read webpieces.mergeprocess.md