Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .agent/memory/candidates/graduated/200af7108094.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"id": "200af7108094",
"key": "manual_200af7",
"name": "manual_200af7",
"claim": "Before running sync-attribution-guard-scripts.sh, run check-guard-sync-divergence.sh --workspace; abort when any sibling guard file differs from orama HEAD and the sibling blob is absent from orama history \u2014 that means the sibling is ahead and blind sync would clobber improvements. Promote sibling to orama on the single open PR per repo, then sync downstream.",
"conditions": [
"HITL",
"anti-clobber",
"check-guard-sync-divergence",
"divergence",
"guard-sync",
"sibling-ahead"
],
"evidence_ids": [
"2026-08-01T14:59:26.823617+00:00"
],
"cluster_size": 1,
"canonical_salience": 8.0,
"staged_at": "2026-08-01T14:59:26.823617+00:00",
"status": "accepted",
"decisions": [
{
"ts": "2026-08-01T14:59:26.823617+00:00",
"action": "staged",
"reviewer": "learn"
},
{
"ts": "2026-08-01T14:59:26.903400+00:00",
"action": "graduated",
"reviewer": "learn.py",
"notes": "2026-08-01: materialized guard-sync-divergence-guard skill + checker after PT canonical wave nearly clobbered by orama\u2192PT sync.",
"provisional": false,
"evidence_snapshot": [
"2026-08-01T14:59:26.823617+00:00"
],
"lessons_sha": "bee53b3683a7"
}
],
"rejection_count": 0,
"accepted_at": "2026-08-01T14:59:26.903389+00:00",
"reviewer": "learn.py",
"rationale": "2026-08-01: materialized guard-sync-divergence-guard skill + checker after PT canonical wave nearly clobbered by orama\u2192PT sync."
}
45 changes: 45 additions & 0 deletions .agent/memory/candidates/graduated/2f59523a02e3.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"id": "2f59523a02e3",
"key": "manual_2f5952",
"name": "manual_2f5952",
"claim": "When syncing attribution guards across PT, orama, and AlphaClaw, fix PT on its single open guard PR first, then byte-copy only GUARD_SYNC manifest paths to the one open PR per downstream repo \u2014 never open fragmented one-file PRs and never run orama-to-PT sync until PT canonical merges, or stale orama copies overwrite PT improvements.",
"conditions": [
"AlphaClaw",
"PR",
"attribution",
"audit_engine",
"fragmentation",
"guard-sync",
"orama",
"sync-attribution-guard-scripts"
],
"evidence_ids": [
"2026-08-01T13:33:54.803624+00:00"
],
"cluster_size": 1,
"canonical_salience": 8.0,
"staged_at": "2026-08-01T13:33:54.803624+00:00",
"status": "accepted",
"decisions": [
{
"ts": "2026-08-01T13:33:54.803624+00:00",
"action": "staged",
"reviewer": "learn"
},
{
"ts": "2026-08-01T13:33:54.885636+00:00",
"action": "graduated",
"reviewer": "learn.py",
"notes": "2026-08-01 guard epic: PR315 nearly regressed PR314; blind sync script would have clobbered PT hardening; recovered via PR319\u2192PR26\u2192PR255 reuse pattern.",
"provisional": false,
"evidence_snapshot": [
"2026-08-01T13:33:54.803624+00:00"
],
"lessons_sha": "19c1244e6a7c"
}
],
"rejection_count": 0,
"accepted_at": "2026-08-01T13:33:54.885625+00:00",
"reviewer": "learn.py",
"rationale": "2026-08-01 guard epic: PR315 nearly regressed PR314; blind sync script would have clobbered PT hardening; recovered via PR319\u2192PR26\u2192PR255 reuse pattern."
}
40 changes: 40 additions & 0 deletions .agent/memory/candidates/graduated/4c914783ec46.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"id": "4c914783ec46",
"key": "manual_4c9147",
"name": "manual_4c9147",
"claim": "When a human explicitly authorizes a PR body edit, set CURSOR_PR_BODY_HUMAN_OVERRIDE_ACK=1 then follow append-only Layers 1-6 (READ backup MERGE full body via append-pr-body.sh); delta-only writes remain forbidden",
"conditions": [
"CURSOR_PR_BODY_HUMAN_OVERRIDE_ACK",
"append-only",
"human-override"
],
"evidence_ids": [
"2026-08-01T15:24:25.426517+00:00"
],
"cluster_size": 1,
"canonical_salience": 8.0,
"staged_at": "2026-08-01T15:24:25.426517+00:00",
"status": "accepted",
"decisions": [
{
"ts": "2026-08-01T15:24:25.426517+00:00",
"action": "staged",
"reviewer": "learn"
},
{
"ts": "2026-08-01T15:24:25.499256+00:00",
"action": "graduated",
"reviewer": "learn.py",
"notes": "User: if prohibition overruled existing PR rules still apply; separates Layer 0 default from human-authorized integrative restore",
"provisional": false,
"evidence_snapshot": [
"2026-08-01T15:24:25.426517+00:00"
],
"lessons_sha": "6d4d4539c98b"
}
],
"rejection_count": 0,
"accepted_at": "2026-08-01T15:24:25.499245+00:00",
"reviewer": "learn.py",
"rationale": "User: if prohibition overruled existing PR rules still apply; separates Layer 0 default from human-authorized integrative restore"
}
43 changes: 43 additions & 0 deletions .agent/memory/candidates/graduated/696cf70a34bd.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"id": "696cf70a34bd",
"key": "manual_696cf7",
"name": "manual_696cf7",
"claim": "Layer 0 for Cursor agents: never automatically change an existing PR description \u2014 use ManagePullRequest post_comment or gh pr comment only; hooks block update_pr with body=, gh pr edit, and append-pr-body.sh",
"conditions": [
"Layer-0",
"PR",
"body",
"comment-only",
"post_comment",
"update_pr"
],
"evidence_ids": [
"2026-08-01T15:24:25.303312+00:00"
],
"cluster_size": 1,
"canonical_salience": 8.0,
"staged_at": "2026-08-01T15:24:25.303312+00:00",
"status": "accepted",
"decisions": [
{
"ts": "2026-08-01T15:24:25.303312+00:00",
"action": "staged",
"reviewer": "learn"
},
{
"ts": "2026-08-01T15:24:25.381145+00:00",
"action": "graduated",
"reviewer": "learn.py",
"notes": "PT#319 delta-only update_pr clobbered integrative Summary 2026-08-01; user mandated comment-only as top prohibition; pr-body-guard-core.py + beforeSubmitPrompt/preToolUse/beforeShell hooks on orama#255",
"provisional": false,
"evidence_snapshot": [
"2026-08-01T15:24:25.303312+00:00"
],
"lessons_sha": "b378d03c64f6"
}
],
"rejection_count": 0,
"accepted_at": "2026-08-01T15:24:25.381132+00:00",
"reviewer": "learn.py",
"rationale": "PT#319 delta-only update_pr clobbered integrative Summary 2026-08-01; user mandated comment-only as top prohibition; pr-body-guard-core.py + beforeSubmitPrompt/preToolUse/beforeShell hooks on orama#255"
}
41 changes: 41 additions & 0 deletions .agent/memory/candidates/graduated/c9ff6cc2625d.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"id": "c9ff6cc2625d",
"key": "manual_c9ff6c",
"name": "manual_c9ff6c",
"claim": "Cloud turn-end update PR must mean post_comment not update_pr body \u2014 treating description field as a scratch pad erases Summary template sections and CodeRabbit tails",
"conditions": [
"PR-summary",
"cloud-agent",
"turn-end",
"update_pr"
],
"evidence_ids": [
"2026-08-01T15:24:25.675068+00:00"
],
"cluster_size": 1,
"canonical_salience": 8.0,
"staged_at": "2026-08-01T15:24:25.675068+00:00",
"status": "accepted",
"decisions": [
{
"ts": "2026-08-01T15:24:25.675068+00:00",
"action": "staged",
"reviewer": "learn"
},
{
"ts": "2026-08-01T15:24:25.785664+00:00",
"action": "graduated",
"reviewer": "learn.py",
"notes": "Recurring clobber pattern across PT#154 #222 #298 #314 #319; lessons and rules failed until runtime hooks; documented in PR_BODY_COMMENT_ONLY_FRUSTRATION_CHAIN_2026-08-01.md",
"provisional": false,
"evidence_snapshot": [
"2026-08-01T15:24:25.675068+00:00"
],
"lessons_sha": "493ec01358bb"
}
],
"rejection_count": 0,
"accepted_at": "2026-08-01T15:24:25.785654+00:00",
"reviewer": "learn.py",
"rationale": "Recurring clobber pattern across PT#154 #222 #298 #314 #319; lessons and rules failed until runtime hooks; documented in PR_BODY_COMMENT_ONLY_FRUSTRATION_CHAIN_2026-08-01.md"
}
41 changes: 41 additions & 0 deletions .agent/memory/candidates/graduated/e8ae3f3b9fa6.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"id": "e8ae3f3b9fa6",
"key": "manual_e8ae3f",
"name": "manual_e8ae3f",
"claim": "Guard-sync waves use one open PR per repo (PT then orama then AlphaClaw); run check-guard-sync-divergence.sh --workspace before sync-attribution-guard-scripts.sh; never open parallel one-file guard PRs",
"conditions": [
"check-guard-sync",
"divergence",
"guard-sync",
"one-PR-per-repo"
],
"evidence_ids": [
"2026-08-01T15:24:25.558868+00:00"
],
"cluster_size": 1,
"canonical_salience": 8.0,
"staged_at": "2026-08-01T15:24:25.558868+00:00",
"status": "accepted",
"decisions": [
{
"ts": "2026-08-01T15:24:25.558868+00:00",
"action": "staged",
"reviewer": "learn"
},
{
"ts": "2026-08-01T15:24:25.627905+00:00",
"action": "graduated",
"reviewer": "learn.py",
"notes": "2026-08-01 guard epic: #314 merged but nitpicks open, #315 false supersede trap, #319/#255/#26 consolidated wave, divergence guard prevents blind orama-to-PT clobber",
"provisional": false,
"evidence_snapshot": [
"2026-08-01T15:24:25.558868+00:00"
],
"lessons_sha": "87e554b296f7"
}
],
"rejection_count": 0,
"accepted_at": "2026-08-01T15:24:25.627895+00:00",
"reviewer": "learn.py",
"rationale": "2026-08-01 guard epic: #314 merged but nitpicks open, #315 false supersede trap, #319/#255/#26 consolidated wave, divergence guard prevents blind orama-to-PT clobber"
}
6 changes: 6 additions & 0 deletions .agent/memory/episodic/AGENT_LEARNINGS.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -483,3 +483,9 @@
{"timestamp": "2026-08-01T05:30:00+00:00", "skill": "cursor-pr-body", "action": "layer6-ci-strict-mode-sync-dirty-guard-rollout", "result": "success", "detail": "Completed PR body anti-clobber enforcement rollout on cursor/pr-body-enforcement-f559: (1) strict mode default in publish-clean-branch.sh (PR_BODY_GUARD_STRICT=1); (2) Layer 6 CI verify-pr-body-not-clobbered.sh + pr-body-guard.yml workflow; (3) sync-attribution-guard-scripts.sh aborts on dirty canonical/target guard-sync paths; (4) formalized incident ledger + learn-eval/ECC ritual + agent frugality reference cards in orama bin/orama-system/references/; (5) post-review-micro-remediation Phase 2 PR body + guard sync sections; (6) NEVER delta update_pr in append-only-pr-body.mdc and cursor-pr-body skill.", "pain_score": 2, "importance": 9, "reflection": "Mechanical gates beat repeated lessons. Dogfood: merge enforcement to main then merge PT#314 and orama#251 to test post-merge hooks.", "confidence": 0.95, "source": {"skill": "cursor-pr-body", "profile": "cursor-cloud", "run_id": "bc-70e499fc"}, "evidence_ids": ["lesson_a8f3c2e91d04", "PR_BODY_ANTI_CLOBBER_ENFORCEMENT_PLAN.md"]}
{"timestamp": "2026-08-01T06:53:43.608740+00:00", "skill": "learn", "action": "manual-stage:718c9430f44b", "result": "success", "detail": "Manually staged lesson 718c9430f44b via .agent/tools/learn.py: 'When resolving real overlap between a new draft and an existing, more comprehensive doctrine, \"avoid duplication\" does not automatically mean \"make the newer, simpler thing subordinate to the older, more complex one.\" It means determining which document actually serves which situation and sizing each to its own job. A heavyweight protocol built for a rare, hard problem (e.g. concurrent multi-agent edits to the same repo, or reconciling a fork separated from its source by months of drift) should not become the default an agent reads first for the common, simple case (one branch, one agent, no concurrent editing) just because it existed first and is more thorough. Getting this backwards is not caught by re-reading a project\\'s own stated single-source-of-truth value, since that value is genuinely being honored in some sense (no literal duplication) even while the sizing is wrong -- it may require direct correction from a human collaborator who can see the actual audience mismatch.'", "pain_score": 1, "importance": 6, "reflection": "", "confidence": 0.9, "source": {"skill": "learn", "profile": "manual", "run_id": "manual_718c94"}, "evidence_ids": ["2026-08-01T06:53:43.608740+00:00"]}
{"timestamp": "2026-08-01T06:53:43.671436+00:00", "skill": "learn", "action": "manual-stage:2d53056e593c", "result": "success", "detail": "Manually staged lesson 2d53056e593c via .agent/tools/learn.py: \"Several tooling and API gotchas recur across a working session even after being individually caught once, because a single encounter doesn't automatically generalize into a standing rule: the PR-list API's merged field being unreliable (must check the single-PR endpoint); squash-merged branches never showing as git ancestors (verify by content/ID presence, not ancestry); a stale local checkout after an earlier push in the same session diverging silently; and diff-scoped CI lint checking a whole touched file, not just the changed hunk. Each of these needs to be treated as a standing checklist item to consult before the relevant operation, not a one-off lesson learned and then re-derived from scratch the next time it's encountered.\"", "pain_score": 1, "importance": 6, "reflection": "", "confidence": 0.9, "source": {"skill": "learn", "profile": "manual", "run_id": "manual_2d5305"}, "evidence_ids": ["2026-08-01T06:53:43.671436+00:00"]}
{"timestamp": "2026-08-01T13:33:54.803624+00:00", "skill": "learn", "action": "manual-stage:2f59523a02e3", "result": "success", "detail": "Manually staged lesson 2f59523a02e3 via .agent/tools/learn.py: 'When syncing attribution guards across PT, orama, and AlphaClaw, fix PT on its single open guard PR first, then byte-copy only GUARD_SYNC manifest paths to the one open PR per downstream repo \u2014 never open fragmented one-file PRs and never run orama-to-PT sync until PT canonical merges, or stale orama copies overwrite PT improvements.'", "pain_score": 1, "importance": 6, "reflection": "", "confidence": 0.9, "source": {"skill": "learn", "profile": "manual", "run_id": "manual_2f5952"}, "evidence_ids": ["2026-08-01T13:33:54.803624+00:00"]}
{"timestamp": "2026-08-01T14:59:26.823617+00:00", "skill": "learn", "action": "manual-stage:200af7108094", "result": "success", "detail": "Manually staged lesson 200af7108094 via .agent/tools/learn.py: 'Before running sync-attribution-guard-scripts.sh, run check-guard-sync-divergence.sh --workspace; abort when any sibling guard file differs from orama HEAD and the sibling blob is absent from orama history \u2014 that means the sibling is ahead and blind sync would clobber improvements. Promote sibling to orama on the single open PR per repo, then sync downstream.'", "pain_score": 1, "importance": 6, "reflection": "", "confidence": 0.9, "source": {"skill": "learn", "profile": "manual", "run_id": "manual_200af7"}, "evidence_ids": ["2026-08-01T14:59:26.823617+00:00"]}
{"timestamp": "2026-08-01T15:24:25.303312+00:00", "skill": "learn", "action": "manual-stage:696cf70a34bd", "result": "success", "detail": "Manually staged lesson 696cf70a34bd via .agent/tools/learn.py: 'Layer 0 for Cursor agents: never automatically change an existing PR description \u2014 use ManagePullRequest post_comment or gh pr comment only; hooks block update_pr with body=, gh pr edit, and append-pr-body.sh'", "pain_score": 1, "importance": 6, "reflection": "", "confidence": 0.9, "source": {"skill": "learn", "profile": "manual", "run_id": "manual_696cf7"}, "evidence_ids": ["2026-08-01T15:24:25.303312+00:00"]}
{"timestamp": "2026-08-01T15:24:25.426517+00:00", "skill": "learn", "action": "manual-stage:4c914783ec46", "result": "success", "detail": "Manually staged lesson 4c914783ec46 via .agent/tools/learn.py: 'When a human explicitly authorizes a PR body edit, set CURSOR_PR_BODY_HUMAN_OVERRIDE_ACK=1 then follow append-only Layers 1-6 (READ backup MERGE full body via append-pr-body.sh); delta-only writes remain forbidden'", "pain_score": 1, "importance": 6, "reflection": "", "confidence": 0.9, "source": {"skill": "learn", "profile": "manual", "run_id": "manual_4c9147"}, "evidence_ids": ["2026-08-01T15:24:25.426517+00:00"]}
{"timestamp": "2026-08-01T15:24:25.558868+00:00", "skill": "learn", "action": "manual-stage:e8ae3f3b9fa6", "result": "success", "detail": "Manually staged lesson e8ae3f3b9fa6 via .agent/tools/learn.py: 'Guard-sync waves use one open PR per repo (PT then orama then AlphaClaw); run check-guard-sync-divergence.sh --workspace before sync-attribution-guard-scripts.sh; never open parallel one-file guard PRs'", "pain_score": 1, "importance": 6, "reflection": "", "confidence": 0.9, "source": {"skill": "learn", "profile": "manual", "run_id": "manual_e8ae3f"}, "evidence_ids": ["2026-08-01T15:24:25.558868+00:00"]}
{"timestamp": "2026-08-01T15:24:25.675068+00:00", "skill": "learn", "action": "manual-stage:c9ff6cc2625d", "result": "success", "detail": "Manually staged lesson c9ff6cc2625d via .agent/tools/learn.py: 'Cloud turn-end update PR must mean post_comment not update_pr body \u2014 treating description field as a scratch pad erases Summary template sections and CodeRabbit tails'", "pain_score": 1, "importance": 6, "reflection": "", "confidence": 0.9, "source": {"skill": "learn", "profile": "manual", "run_id": "manual_c9ff6c"}, "evidence_ids": ["2026-08-01T15:24:25.675068+00:00"]}
Loading
Loading