@uzysjung/agent-harness 26.96.0 → 26.98.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/README.md +1 -1
- package/dist/{chunk-WKXYOTUV.js → chunk-OU4FBPVN.js} +22 -3
- package/dist/chunk-OU4FBPVN.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/trust-tier-drift.js +1 -1
- package/package.json +1 -1
- package/templates/skills/compaction-handoff/SKILL.md +264 -130
- package/templates/skills/harness-health-audit/SKILL.md +370 -0
- package/dist/chunk-WKXYOTUV.js.map +0 -1
package/dist/trust-tier-drift.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uzysjung/agent-harness",
|
|
3
|
-
"version": "26.
|
|
3
|
+
"version": "26.98.0",
|
|
4
4
|
"description": "Curate vetted AI-coding skills & plugins by your tech stack — install only what you need, across Claude Code, Codex, OpenCode & Antigravity",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -1,178 +1,312 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compaction-handoff
|
|
3
3
|
description: >-
|
|
4
|
-
|
|
5
|
-
durable facts
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Also fire proactively when context is nearing the window limit and an auto-compact is imminent.
|
|
4
|
+
Create a compact, reconstructible checkpoint immediately before context compaction. Persist only
|
|
5
|
+
durable facts and decisions, overwrite one current resume anchor, verify Git and open-PR state,
|
|
6
|
+
and emit one concrete next action plus a short /compact line. Use for "컴팩션 준비해줘",
|
|
7
|
+
"컴팩션하고 이어서 진행할 수 있게 준비해줘", "핸드오프 준비해줘", or "prepare for
|
|
8
|
+
compaction", or equivalent. Repeated execution must be idempotent and must not grow state files
|
|
9
|
+
without bound.
|
|
11
10
|
---
|
|
12
11
|
|
|
13
12
|
# Compaction Handoff Protocol
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
This skill runs the handoff deliberately so the resumed session can pick up without re-deriving
|
|
18
|
-
lost state.
|
|
14
|
+
Context compaction is lossy. Create a deliberate checkpoint that lets the next session resume from
|
|
15
|
+
verified state without replaying the full conversation.
|
|
19
16
|
|
|
20
|
-
|
|
21
|
-
> This skill is the **HOW**: it executes the handoff at that moment. Run `strategic-compact`'s
|
|
22
|
-
> decision first if you're unsure whether to compact at all; run this when the answer is "yes".
|
|
17
|
+
This protocol is **snapshot-based, not append-based**:
|
|
23
18
|
|
|
24
|
-
|
|
19
|
+
- `MEMORY.md`: durable facts and pointers only.
|
|
20
|
+
- `docs/decisions/`: durable, load-bearing decisions only.
|
|
21
|
+
- `.handoff/CURRENT.md`: current resumable state; overwrite on every handoff.
|
|
22
|
+
- Git and PR state: authoritative implementation snapshot.
|
|
23
|
+
- `/compact` line: short pointer to the anchor, not another summary.
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
> `strategic-compact` decides **when** to compact. This skill defines **how** to checkpoint.
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
- English equivalents: "prepare for compaction", "get ready to compact and continue", "hand off".
|
|
30
|
-
- **Proactively, before the cliff.** Don't wait for auto-compact at 100%. Auto-compaction fires
|
|
31
|
-
near the window limit; a common practice is to trigger the handoff earlier (around ~80% of the
|
|
32
|
-
window) so there's still budget to write a clean anchor — a rushed handoff at the cliff is exactly
|
|
33
|
-
where load-bearing context gets dropped.
|
|
27
|
+
## Goals
|
|
34
28
|
|
|
35
|
-
|
|
36
|
-
load-bearing facts (an open PR, a chosen-but-unwritten decision). If you skip the handoff because
|
|
37
|
-
the task "looks finished," you risk silent information loss — the resumed agent assumes work
|
|
38
|
-
shipped that did not.
|
|
29
|
+
A valid handoff is:
|
|
39
30
|
|
|
40
|
-
|
|
31
|
+
- **Recoverable:** the next session can start from one exact action.
|
|
32
|
+
- **Atomic:** the anchor refers to one coherent repository state.
|
|
33
|
+
- **Evidence-based:** verified results are distinct from claims and pending work.
|
|
34
|
+
- **Compact:** only load-bearing information survives.
|
|
35
|
+
- **Idempotent:** rerunning updates existing state instead of duplicating it.
|
|
36
|
+
- **Bounded:** state files remain within fixed size limits.
|
|
41
37
|
|
|
42
|
-
|
|
43
|
-
an established practice:
|
|
38
|
+
## Trigger
|
|
44
39
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
can't be trusted to carry everything. Route load-bearing *decisions* to ADRs (`docs/decisions/`)
|
|
48
|
-
so the *why* survives every future compaction, not just this one.
|
|
49
|
-
2. **Take an atomic, reconstructible snapshot** — git clean (or a `savepoint` commit) plus an
|
|
50
|
-
**open-PR check**. A dirty/half-committed tree is a corrupt checkpoint; an open PR is itself
|
|
51
|
-
critical state that belongs in "what's left." This is the Checkpoint **Atomicity** and **State
|
|
52
|
-
Completeness** principles applied to the working tree.
|
|
53
|
-
3. **Emit a fixed-field resume anchor** — current state / verified / what's left / next action —
|
|
54
|
-
framed *working backwards* from the next concrete step so a freshly-compacted agent re-orients
|
|
55
|
-
instantly instead of replaying history forward.
|
|
40
|
+
Run on explicit compaction or handoff requests, or proactively before automatic compaction while
|
|
41
|
+
there is still enough context to write a clean checkpoint.
|
|
56
42
|
|
|
57
|
-
|
|
43
|
+
Do not run after compaction without first reconstructing the best available state.
|
|
58
44
|
|
|
59
|
-
|
|
60
|
-
split):
|
|
45
|
+
## State and retention rules
|
|
61
46
|
|
|
62
|
-
|
|
47
|
+
### `.handoff/CURRENT.md` — transient resume SSOT
|
|
48
|
+
|
|
49
|
+
- Single source of truth for current resumable state.
|
|
50
|
+
- Overwrite; never append old anchors.
|
|
51
|
+
- No raw logs, full file contents, or conversation replay.
|
|
52
|
+
- Reference commits, PRs, tests, files, and ADRs instead of copying them.
|
|
53
|
+
- Target: **120 lines / 12 KB maximum**.
|
|
54
|
+
- Write atomically through a temporary file when practical.
|
|
55
|
+
- Historical archives are disabled by default. If explicitly required, keep them under
|
|
56
|
+
`.handoff/archive/`, apply a retention limit, and never auto-load them on resume.
|
|
57
|
+
|
|
58
|
+
### `MEMORY.md` — durable facts only
|
|
59
|
+
|
|
60
|
+
Keep:
|
|
61
|
+
|
|
62
|
+
- stable purpose, scope, constraints, invariants, and operating principles;
|
|
63
|
+
- durable repository or user preferences;
|
|
64
|
+
- pointers to active ADRs and `.handoff/CURRENT.md`.
|
|
65
|
+
|
|
66
|
+
Remove or exclude:
|
|
67
|
+
|
|
68
|
+
- current branch, test failure, task progress, temporary blocker, raw output;
|
|
69
|
+
- completed session history, old anchors, duplicated repository content.
|
|
70
|
+
|
|
71
|
+
Update or replace existing entries; do not append near-duplicates. Remove superseded facts. Target:
|
|
72
|
+
**200 lines / 20 KB maximum**, unless the repository defines another limit.
|
|
73
|
+
|
|
74
|
+
### `docs/decisions/` — durable decisions only
|
|
75
|
+
|
|
76
|
+
Create or update an ADR only for expensive-to-reverse decisions such as:
|
|
77
|
+
|
|
78
|
+
- architecture or major dependency choices;
|
|
79
|
+
- API, data-model, compatibility, or migration contracts;
|
|
80
|
+
- security trust boundaries and control ownership;
|
|
81
|
+
- deployment topology, operational responsibility, or deliberate breaking changes.
|
|
82
|
+
|
|
83
|
+
Do not create ADRs for branch status, task order, temporary workarounds, test failures, or today's
|
|
84
|
+
remaining work. Search existing ADRs first; update or supersede rather than duplicate.
|
|
85
|
+
|
|
86
|
+
### Git and PR state — implementation authority
|
|
87
|
+
|
|
88
|
+
Inspect:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
git status --short
|
|
92
|
+
git branch --show-current
|
|
93
|
+
git rev-parse --short HEAD
|
|
94
|
+
git log -1 --oneline
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
When GitHub CLI is available:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
gh pr list --state open
|
|
101
|
+
gh pr status
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Never assume a PR is merged. Surface open PR number, CI/review status, and mergeability when
|
|
105
|
+
available. Never merge or modify a PR unless separately requested.
|
|
106
|
+
|
|
107
|
+
## Preserve versus discard
|
|
108
|
+
|
|
109
|
+
| Preserve | Discard |
|
|
63
110
|
|---|---|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
|
67
|
-
|
|
|
68
|
-
|
|
|
111
|
+
| Current objective and processed/remaining boundary | Full conversation replay |
|
|
112
|
+
| Durable decisions via ADR reference | Intermediate reasoning already acted on |
|
|
113
|
+
| Unresolved blockers and exact impact | Raw logs and repetitive tool output |
|
|
114
|
+
| Branch, commit, dirty state, open PRs | Re-readable file contents |
|
|
115
|
+
| Test/build evidence | Unsupported "done" claims |
|
|
116
|
+
| One exact next action | Broad speculative future work |
|
|
117
|
+
|
|
118
|
+
When uncertain, preserve a concise reference rather than duplicated content.
|
|
69
119
|
|
|
70
120
|
## Workflow
|
|
71
121
|
|
|
72
|
-
|
|
122
|
+
### 1. Inspect existing state
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
test -f MEMORY.md && sed -n '1,240p' MEMORY.md
|
|
126
|
+
test -f .handoff/CURRENT.md && sed -n '1,180p' .handoff/CURRENT.md
|
|
127
|
+
find docs/decisions -maxdepth 1 -type f 2>/dev/null | sort
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Use existing files to update and prune. Never blindly append.
|
|
131
|
+
|
|
132
|
+
### 2. Classify each item
|
|
133
|
+
|
|
134
|
+
Route each fact once:
|
|
135
|
+
|
|
136
|
+
1. durable fact → `MEMORY.md`;
|
|
137
|
+
2. durable decision with rationale → ADR;
|
|
138
|
+
3. transient resumable state → `.handoff/CURRENT.md`;
|
|
139
|
+
4. reconstructible or low-value detail → discard.
|
|
140
|
+
|
|
141
|
+
A fact should not exist in multiple places unless one location contains only a pointer.
|
|
73
142
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
For
|
|
77
|
-
|
|
78
|
-
|
|
143
|
+
### 3. Update durable state
|
|
144
|
+
|
|
145
|
+
For `MEMORY.md`:
|
|
146
|
+
|
|
147
|
+
- merge duplicates;
|
|
148
|
+
- replace superseded facts;
|
|
149
|
+
- remove completed transient state;
|
|
150
|
+
- add only genuinely durable information;
|
|
151
|
+
- keep a pointer to `.handoff/CURRENT.md`.
|
|
152
|
+
|
|
153
|
+
For ADRs:
|
|
154
|
+
|
|
155
|
+
- confirm the decision is durable;
|
|
156
|
+
- search for an equivalent ADR;
|
|
157
|
+
- update or supersede when possible;
|
|
158
|
+
- create a new ADR only when necessary.
|
|
159
|
+
|
|
160
|
+
If there are no durable changes, leave these files unchanged.
|
|
161
|
+
|
|
162
|
+
### 4. Make Git state reconstructible
|
|
163
|
+
|
|
164
|
+
Preferred order:
|
|
165
|
+
|
|
166
|
+
1. reuse the current meaningful commit if the tree is clean;
|
|
167
|
+
2. make a normal semantic commit for a coherent completed unit when authorized;
|
|
168
|
+
3. otherwise use a named stash when safe and authorized;
|
|
169
|
+
4. use a temporary savepoint commit only as a last resort;
|
|
170
|
+
5. if no safe write action is authorized, leave the tree unchanged and record dirty files and risk.
|
|
171
|
+
|
|
172
|
+
Do not stage unrelated files. Do not create another savepoint when state has not materially changed.
|
|
173
|
+
|
|
174
|
+
### 5. Overwrite `.handoff/CURRENT.md`
|
|
175
|
+
|
|
176
|
+
Use this structure:
|
|
177
|
+
|
|
178
|
+
```markdown
|
|
179
|
+
# Compaction Resume Anchor
|
|
180
|
+
|
|
181
|
+
- Updated: <ISO-8601 timestamp with timezone>
|
|
182
|
+
- Repository: <name or path>
|
|
183
|
+
- Branch: <branch or n/a>
|
|
184
|
+
- Commit: <short SHA or n/a>
|
|
185
|
+
- Working tree: <clean | concise dirty-file summary>
|
|
186
|
+
- Open PRs: <none | concise status>
|
|
187
|
+
|
|
188
|
+
## Current state
|
|
189
|
+
<Active objective, completed work, and processed-vs-remaining boundary.>
|
|
190
|
+
|
|
191
|
+
## Verified
|
|
192
|
+
<Evidence only: command and exit status, reviewed diff, artifact, merged PR, or "not verified".>
|
|
193
|
+
|
|
194
|
+
## What's left
|
|
195
|
+
<Pending work, blockers, dirty or unpushed state, open PRs, and unresolved decisions.>
|
|
196
|
+
|
|
197
|
+
## Next action
|
|
198
|
+
<Exactly one executable next step, preferably naming the file, command, or decision target.>
|
|
199
|
+
|
|
200
|
+
## References
|
|
201
|
+
- <Only directly useful plan/spec/ADR/PR/file references>
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Requirements:
|
|
205
|
+
|
|
206
|
+
- `Next action` is mandatory and singular.
|
|
207
|
+
- `Verified` must name evidence; assumptions are not passes.
|
|
208
|
+
- `What's left` must expose relevant uncommitted, unpushed, unmerged, failed, or blocked state.
|
|
209
|
+
- Keep references minimal.
|
|
210
|
+
|
|
211
|
+
Atomic write example:
|
|
79
212
|
|
|
80
|
-
**2. Git — atomic snapshot + open-PR check.**
|
|
81
|
-
Make the working tree reflect a consistent state. The `gh pr list` step is **not optional** — it is
|
|
82
|
-
the git-policy **Session Cleanup** gate, which is mandatory before any `/clear` or `/compact`. Run it
|
|
83
|
-
every handoff:
|
|
84
213
|
```bash
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
214
|
+
mkdir -p .handoff
|
|
215
|
+
cat > .handoff/CURRENT.md.tmp <<'ANCHOR'
|
|
216
|
+
...
|
|
217
|
+
ANCHOR
|
|
218
|
+
mv .handoff/CURRENT.md.tmp .handoff/CURRENT.md
|
|
90
219
|
```
|
|
91
|
-
This folds the git-policy **Session Cleanup** gate into the handoff. An open PR is not a
|
|
92
|
-
loose end to hide — surface it in the anchor's "what's left" with its number, CI status, and
|
|
93
|
-
mergeability, and let the user decide (no auto-merge).
|
|
94
220
|
|
|
95
|
-
|
|
96
|
-
Emit the anchor. Keep "verified" distinct from "done": *done* is a claim, *verified* encodes the
|
|
97
|
-
evidence (test PASS output, exit 0, a merged PR). The resumed agent re-trusts only what's verified.
|
|
98
|
-
Make **next action** mandatory and singular — it's the entry point the resumed session executes
|
|
99
|
-
first, so the anchor is self-serve (Recovery Automation), not a note to re-interpret.
|
|
221
|
+
### 6. Validate
|
|
100
222
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
223
|
+
```bash
|
|
224
|
+
wc -l -c MEMORY.md .handoff/CURRENT.md 2>/dev/null
|
|
225
|
+
git status --short
|
|
226
|
+
git diff --check
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Confirm:
|
|
105
230
|
|
|
106
|
-
|
|
231
|
+
- anchor matches current branch and commit;
|
|
232
|
+
- no old anchor was appended;
|
|
233
|
+
- no transient state leaked into `MEMORY.md`;
|
|
234
|
+
- no duplicate ADR was created;
|
|
235
|
+
- open PR state is visible;
|
|
236
|
+
- `Verified` is evidence-backed;
|
|
237
|
+
- `Next action` is singular and executable.
|
|
107
238
|
|
|
108
|
-
|
|
239
|
+
If size limits are exceeded, prune. Do not create another summary file to hide the problem.
|
|
109
240
|
|
|
241
|
+
### 7. Report and suggest `/compact`
|
|
242
|
+
|
|
243
|
+
```markdown
|
|
244
|
+
| Check | Result | Status |
|
|
245
|
+
|---|---|---|
|
|
246
|
+
| Durable memory | unchanged / updated and pruned | ✓ / ⚠ |
|
|
247
|
+
| ADRs | none / updated / created | ✓ / ⚠ |
|
|
248
|
+
| Git snapshot | branch, commit, clean/dirty | ✓ / ⚠ |
|
|
249
|
+
| Open PRs | none / concise status | ✓ / ⚠ |
|
|
250
|
+
| Resume anchor | overwritten and validated | ✓ / ⚠ |
|
|
110
251
|
```
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
| Files | resume anchor written, plan SSOT synced | ✓ |
|
|
252
|
+
|
|
253
|
+
Then give the four resume fields in concise form and one short pointer:
|
|
254
|
+
|
|
255
|
+
```text
|
|
256
|
+
/compact Resume from .handoff/CURRENT.md; next: <single action>; <branch>@<sha>; <PR or dirty-state warning if material>
|
|
117
257
|
```
|
|
118
258
|
|
|
119
|
-
##
|
|
259
|
+
## Resume protocol
|
|
120
260
|
|
|
121
|
-
|
|
122
|
-
> 컴팩션하고 이어서 진행할 수 있게 준비해줘
|
|
261
|
+
After compaction, load only:
|
|
123
262
|
|
|
124
|
-
|
|
263
|
+
1. repository instructions (`CLAUDE.md` or equivalent);
|
|
264
|
+
2. `MEMORY.md`;
|
|
265
|
+
3. `.handoff/CURRENT.md`;
|
|
266
|
+
4. ADRs referenced by the anchor;
|
|
267
|
+
5. current Git and open-PR state;
|
|
268
|
+
6. source files required for the next action.
|
|
125
269
|
|
|
126
|
-
|
|
270
|
+
Do not auto-load archives, old summaries, raw logs, or the full prior conversation. If Git conflicts
|
|
271
|
+
with the anchor, Git wins; report the discrepancy before continuing.
|
|
127
272
|
|
|
128
|
-
|
|
129
|
-
|----------|-------------------------------------------------|--------|
|
|
130
|
-
| Memory | MEMORY.md code-quality-cycle entry refreshed | ✓ |
|
|
131
|
-
| Git | tree clean (no savepoint needed) | ✓ |
|
|
132
|
-
| Open PRs | `gh pr list` → **1 open: #165** CI pass, mergeable | ⚠ surfaced |
|
|
133
|
-
| Files | resume anchor below; persona-feedback SSOT synced | ✓ |
|
|
273
|
+
## Idempotency checks
|
|
134
274
|
|
|
135
|
-
|
|
136
|
-
- **Current state:** Persona P0 fixes in progress on branch `fix/persona-p0`. 2 of 4 fixes landed.
|
|
137
|
-
- **Verified:** `npm run ci` exit 0 on current HEAD (typecheck + lint + coverage branches 88.4% + build). Docker scenario for `--with <id>` exit 0.
|
|
138
|
-
- **What's left:** Fixes 3 & 4 (wizard copy + COMPATIBILITY honesty). **Open PR #165 is not merged** — publishing is blocked until P0 complete (per persona-feedback-improvements.md). Branch `fix/persona-p0` unpushed for the last 2 commits.
|
|
139
|
-
- **Next action:** Implement fix 3 (wizard understanding-category copy), then re-run `npm run ci`.
|
|
275
|
+
Every rerun must satisfy:
|
|
140
276
|
|
|
141
|
-
|
|
142
|
-
|
|
277
|
+
- `CURRENT.md` replaced, not appended;
|
|
278
|
+
- memory facts updated, not duplicated;
|
|
279
|
+
- ADRs reused, updated, or superseded rather than cloned;
|
|
280
|
+
- no new savepoint without material repository change;
|
|
281
|
+
- one open PR represented once;
|
|
282
|
+
- completed work removed from `What's left`;
|
|
283
|
+
- file sizes remain stable.
|
|
143
284
|
|
|
144
|
-
|
|
145
|
-
the open PR visible in "what's left" instead of assuming it shipped, and separates the *verified* CI
|
|
146
|
-
evidence from the *unverified* remaining fixes.
|
|
285
|
+
## Failure handling
|
|
147
286
|
|
|
148
|
-
|
|
287
|
+
If tools or repository access are unavailable:
|
|
149
288
|
|
|
150
|
-
-
|
|
151
|
-
|
|
152
|
-
-
|
|
153
|
-
|
|
154
|
-
-
|
|
155
|
-
facts to stable memory/ADRs breaks the degradation chain a chain of summaries can't.
|
|
156
|
-
- **Non-atomic snapshot** — handing off with a half-committed tree reconstructs an inconsistent
|
|
157
|
-
state. The git leg forces a clean or savepoint-committed tree.
|
|
158
|
-
- **Incomplete state save** — omitting the processed-vs-remaining boundary forces duplicate work or
|
|
159
|
-
silent re-execution of irreversible actions. The "what's left" field is mandatory.
|
|
289
|
+
- do not fabricate Git, PR, CI, or test status;
|
|
290
|
+
- mark unavailable evidence as `not verified`;
|
|
291
|
+
- create the best available anchor from known state;
|
|
292
|
+
- identify missing verification as a blocker or next action when material;
|
|
293
|
+
- do not claim an atomic checkpoint when repository state could not be inspected.
|
|
160
294
|
|
|
161
|
-
|
|
295
|
+
If durable files cannot be written, do not claim that compaction is safe. Report the failure and emit
|
|
296
|
+
a minimal manual resume anchor in the response.
|
|
297
|
+
|
|
298
|
+
## Anti-patterns
|
|
162
299
|
|
|
163
|
-
-
|
|
164
|
-
|
|
165
|
-
-
|
|
166
|
-
|
|
167
|
-
-
|
|
168
|
-
|
|
169
|
-
-
|
|
170
|
-
|
|
171
|
-
- Amazon *Working Backwards* — lead the anchor with the end state and the single next action.
|
|
300
|
+
- Appending each handoff to `MEMORY.md`.
|
|
301
|
+
- Keeping multiple active anchors.
|
|
302
|
+
- Creating ADRs for routine task progress.
|
|
303
|
+
- Copying complete logs into the anchor.
|
|
304
|
+
- Loading all historical handoffs after compaction.
|
|
305
|
+
- Creating a savepoint commit on every run.
|
|
306
|
+
- Hiding dirty files, failed CI, unpushed commits, or open PRs.
|
|
307
|
+
- Listing several possible next actions instead of one entry point.
|
|
172
308
|
|
|
173
309
|
## Related skills
|
|
174
310
|
|
|
175
|
-
- **strategic-compact** — decides
|
|
176
|
-
|
|
177
|
-
- **git-policy Session Cleanup** — the open-PR check (leg 2) is the same gate; this skill folds it
|
|
178
|
-
into the pre-compaction moment.
|
|
311
|
+
- **strategic-compact** — decides when to compact.
|
|
312
|
+
- **git-policy Session Cleanup** — defines repository and PR cleanup expectations.
|