@jaybeeuu/agent-cortex 2.2.0 → 2.3.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 3dd1e20: Sync a behind branch by rebasing it onto its base branch, not by merging the base in. The
8
+ `git-workflow` skill previously told agents to merge the base in, which dragged every intervening
9
+ commit into the review diff and left a merge commit behind; rule 6 now says fetch, rebase onto
10
+ `origin/main` (or `epic/<id>` for a feature branch inside an epic), and force-push with
11
+ `--force-with-lease`. Rewritten commits are re-signed automatically by `commit.gpgsign`, so no
12
+ `--gpg-sign` and no `rebase.gpgSign` is needed. The rule is scoped to your own unmerged branch —
13
+ never `main`, never a branch someone else is working on — with one stated exception: a shared
14
+ integration branch that other branches are based on is synced by merging the base in, because
15
+ rewriting it would rewrite history under every branch based on it. Landing is unchanged:
16
+ squash-merge still governs how a branch reaches `main`, so the two decisions can no longer be read
17
+ as one rule. `AGENTS.md` splits its collapsed "Landing method" bullet into those two decisions
18
+ accordingly.
19
+
20
+ ### Patch Changes
21
+
22
+ - 9944bca: Retire `docs/ideas/` now that ideas are `kind:idea` beads. The four remaining idea files that had
23
+ never been migrated were recorded as beads, and the directory was deleted, so ideas have a single
24
+ home. Live references to the deleted paths now cite the originating bead instead; `agent-cortex
25
+ migrate` step v2 still reads `docs/ideas/` as a migration source, which is unchanged.
26
+
3
27
  ## 2.2.0
4
28
 
5
29
  ### Minor Changes
@@ -2,7 +2,7 @@
2
2
 
3
3
  Appends the always-on reply shape to the PI system prompt once per user prompt.
4
4
 
5
- This is the second slice of `docs/ideas/improve-pi-system-prompt.md`: the first
5
+ This is the second slice of the "Improve PI System Prompt" idea (bead `agnt-ctx-s5hn`): the first
6
6
  (`agent-guardrails`) stops wasted work; this one stops the answer getting buried in
7
7
  it. The extension injects a stable block via the `before_agent_start` hook — which
8
8
  fires once per user prompt, before the agent loop — so the rules apply to every
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Appends the always-on reply shape to the PI system prompt on every turn: lead
5
5
  * with the action, write in Simplified Technical English (ASD-STE100), restate the
6
- * context the reader cannot remember (the second slice of
7
- * docs/ideas/improve-pi-system-prompt.md).
6
+ * context the reader cannot remember (the second slice of the "Improve PI
7
+ * System Prompt" idea, bead `agnt-ctx-s5hn`).
8
8
  *
9
9
  * The block is stable text appended after any chained system-prompt changes, so it
10
10
  * keeps the prompt-cache prefix intact while remaining authoritative for the model.
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Output style for the PI system prompt.
3
3
  *
4
- * The second slice of docs/ideas/improve-pi-system-prompt.md: the reply shape, not
5
- * the task discipline. Three concerns, in order — lead with the action, write in
4
+ * The second slice of the "Improve PI System Prompt" idea (bead `agnt-ctx-s5hn`): the reply
5
+ * shape, not the task discipline. Three concerns, in order — lead with the action, write in
6
6
  * Simplified Technical English, restate the context the reader cannot remember.
7
7
  *
8
8
  * The prose lives in output-style.md so one file feeds both harnesses: this
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaybeeuu/agent-cortex",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Personal PI package with custom agents, skills, and extensions",
5
5
  "keywords": [
6
6
  "pi-package"
@@ -90,39 +90,41 @@ git pull
90
90
 
91
91
  This avoids avoidable merge conflicts.
92
92
 
93
- ### 6. Bring a behind branch up to date — merge, don't rebase
93
+ ### 6. Bring a behind branch up to date — rebase, don't merge
94
94
 
95
- When the base branch moves and the PR reports `BEHIND` or `CONFLICTING`, update
96
- the branch before anything else:
95
+ When the base branch moves and the PR reports `BEHIND` or `CONFLICTING`, rebase
96
+ your branch onto its base branch before anything else — never merge the base in:
97
97
 
98
98
  ```bash
99
99
  git fetch origin
100
- git merge origin/main
100
+ git rebase origin/main # or epic/<id> for a feature branch inside an epic
101
+ git push --force-with-lease
101
102
  ```
102
103
 
103
- **Never rebase a branch that contains a merge commit.** `git rebase` drops merge
104
- commits and the patches they carry, so rebasing a branch that already merged the
105
- base silently reverts what that merge resolved — the conflict resolutions, and
106
- any fix from the base the merge brought in. The result usually looks like a
107
- regression in your own change. `--rebase-merges` preserves the structure, but
108
- it re-opens the same conflicts; only worth it when the branch's history is
109
- itself the deliverable.
110
-
111
- Rebase only a **linear branch that has not been reviewed yet**. Rewriting
112
- commits under review discards the review context and invalidates approvals, and
113
- it requires `git push --force-with-lease` — never `--force`, which overwrites
114
- work you have not seen.
115
-
116
- Which one you owe the repository depends on its landing method, not on taste:
117
-
118
- - **Squash merge**: the branch is collapsed on landing, so its shape never
119
- reaches the base branch. Merge the base in and move on — rebasing here is
120
- cosmetic, and the risky kind of cosmetic.
121
- - **Rebase-and-merge**: a linear branch is mandatory, so rebase *before* the
122
- first review. Once a merge has landed on the branch, that option is gone.
123
-
124
- After any update, re-run the checks. A merge that resolved conflicts by hand is
125
- not verified by the base branch's green CI.
104
+ A merge from the base drags every intervening commit into the review diff and,
105
+ under a squash-merge landing method, contributes nothing that reaches the base
106
+ branch. Landing is still a squash merge; rebasing only reshapes *your* branch
107
+ before it lands, so these are separate decisions, not rivals. Keeping the branch
108
+ linear is what makes the rebase safe: `git rebase` drops merge commits and the
109
+ patches they resolved, so never rebase a branch that already merged the base.
110
+
111
+ One exception: an **integration branch** that other branches are based on
112
+ (`main`, or an `epic/<id>` branch) is not yours to rewrite. Sync it by merging
113
+ the base in — under squash-merge that merge never reaches the landing diff, and
114
+ the branches based on it stay linear by rebasing onto it.
115
+
116
+ Rewritten commits are re-signed automatically when `commit.gpgsign` is set. Pass
117
+ no `--gpg-sign`, and do not set `rebase.gpgSign` — both are redundant.
118
+
119
+ Scope: rebase only your **own unmerged feature branch**. Never rebase `main` or an
120
+ `epic/<id>` branch others are based on, and never rebase a branch another person
121
+ or agent is working on — it discards their context and invalidates review.
122
+ Force-push with `--force-with-lease`, never `--force`, which overwrites work you
123
+ have not seen. Rewriting a reviewed branch discards the review context and
124
+ invalidates approvals, so re-request review after a sync.
125
+
126
+ After any update, re-run the checks: a conflict resolved by hand is not verified
127
+ by the base branch's green CI.
126
128
 
127
129
  ### 7. Worktree lifecycle
128
130