Skip to content

Commit fd8ca1a

Browse files
authored
Tighten scrub skill delivery contract (#3205)
to make the golem do things
1 parent a50a1f9 commit fd8ca1a

3 files changed

Lines changed: 47 additions & 0 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
name: handle-gh-scrub
3+
description: Base execution contract for scheduled scrub runs in marin-community/marin.
4+
---
5+
6+
# handle-gh-scrub
7+
8+
Use this skill for scheduled scrub turns.
9+
10+
## Workflow
11+
12+
1. Read the requested `scrub-*` skill and apply it for this run.
13+
2. Decide whether useful progress is available now.
14+
3. If useful work exists, implement and validate it.
15+
4. Publish outcomes before ending the run:
16+
- commit/push to a branch
17+
- open/update a PR when code or docs changed
18+
5. If publish is blocked (token/permissions/infra), keep the run open and schedule follow-up.
19+
6. If no-op is correct, explicitly report inspected scope and why no change was justified.
20+
21+
## Completion Contract
22+
23+
- Do not end a run with uncommitted local changes.
24+
- `HARNESS_SCRUB_LOOP {"needs_followup_at":null}` is only valid when either:
25+
- a visible artifact exists (commit/branch/PR), or
26+
- a justified no-op outcome is recorded.
27+
- If work is partially done or blocked, set a future `needs_followup_at`.
28+
29+
## Required Footer
30+
31+
Your response must end with exactly one line in this format:
32+
33+
```text
34+
HARNESS_SCRUB_LOOP {"needs_followup_at":null}
35+
```
36+
37+
Rules:
38+
39+
- Keep JSON valid and on one line.
40+
- Set `needs_followup_at = null` when the current scrub run is complete.
41+
- Use a future RFC 3339 timestamp (with timezone/offset) when this run needs another follow-up turn.

.agents/skills/scrub-docs-code-parity/SKILL.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,7 @@ Use this skill on scheduled scrub turns for docs/code parity in `marin-community
2525
## Output
2626

2727
- Keep the final scrub response concise and action-focused.
28+
- Treat local-only edits as incomplete work. If you modify files, publish the result (commit/push and open or update a PR) before finishing this scrub run.
29+
- If publish is blocked (auth, permissions, CI infra, etc.), report the blocker and set a future `needs_followup_at` instead of ending the run.
30+
- If no material drift is found, explicitly report inspected scope and why no change was needed.
2831
- Always end with the required `HARNESS_SCRUB_LOOP` footer (provided by the base scrub contract).

.agents/skills/scrub-reflection-self-improvement/SKILL.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,7 @@ Use this skill on scheduled scrub turns to identify and land high-leverage impro
3333

3434
- Keep rationale explicit: observed gap, change made (or plan), and expected impact.
3535
- Prefer durable artifacts over transient notes: land guidance updates in `AGENTS.md` and/or recipe docs when that is the primary improvement.
36+
- Treat local-only edits as incomplete work. If you modify files, publish the result (commit/push and open or update a PR) before finishing this scrub run.
37+
- If publish is blocked (auth, permissions, CI infra, etc.), report the blocker and set a future `needs_followup_at` instead of ending the run.
38+
- If you choose no-op, include explicit inspected signals and why no justified improvement exists now.
3639
- Always end with the required `HARNESS_SCRUB_LOOP` footer (provided by the base scrub contract).

0 commit comments

Comments
 (0)