Skip to content

fix: close the three spawn spec gaps taking spawn_drift red - #113

Merged
Jammy2211 merged 2 commits into
mainfrom
feature/spawn-drift-issued-orphan-ai-policy
Jul 27, 2026
Merged

fix: close the three spawn spec gaps taking spawn_drift red#113
Jammy2211 merged 2 commits into
mainfrom
feature/spawn-drift-issued-orphan-ai-policy

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Fixes PyAutoMind/spawn_drift, red on the nightly schedule. Three separate spec gaps, each of which surfaces only once the previous one is cleared.

1. issued/remove_pulse_compat.md — the reported failure

== PyAutoMind-template
  UNMATCHED (1) — extend the spec's tables, then mirror here:
    ✗ issued/remove_pulse_compat.md

The lifecycle split (#71/#72) repointed spawn.py's ("issued/*", "DROP") rule to ("active/*", "DROP"), retiring the flat issued/ pile. One file was left behind, so it matched no rule → DROP + WARN → exit 1.

It is a pure orphan: the work is done (PyAutoPulse is gone; no pulse/pyautopulse references remain in PyAutoHeart) and already recorded at complete/2026/07/remove-pulse-compat.md. Deleted, along with the now-empty issued/ directory.

2. AI_POLICY.md — the next UNMATCHED

Added org-wide earlier today with no spec rule, so it became the next failure the moment (1) was cleared. It names the owning org twice — once in prose, once in a github.com/PyAutoLabs/... URL — so it takes KEEP_SUB (owner substitution), not a verbatim KEEP.

3. CONTRIBUTING.md — found while fixing (2)

CONTRIBUTING.md was KEEP verbatim. Today's centralisation rewrote it to:

# Contributing to PyAutoLabs
PyAutoLabs maintains its shared contribution guidance in one place.

Republishing with the verbatim rule would have stamped PyAutoLabs branding into a fresh-slate template spawned for somebody else's org — the exact thing the template is meant not to do. Same defect class as (2); moved to KEEP_SUB in both rule sets.

Generated output after the change:

# Contributing to YOURORG
YOURORG maintains its shared contribution guidance in one place.
Read the [canonical YOURORG contribution guide](https://github.com/YOURORG/PyAutoScientist/blob/main/CONTRIBUTING.md).

Also: a dangling planned.md pointer

planned.md's jax-point-source-point-smoke-sentinel entry pointed at PyAutoMind/issued/jax_point_source_point_smoke_sentinel.md — a 130-line diagnostic prompt dropped as "legacy" by the lifecycle migration while the task itself stayed planned and unfixed (a JAX point-source regression returning the -1e99 sentinel instead of -83.38049778).

Restored verbatim to draft/bug/autolens/, with a header noting the restore, and the pointer repointed. Dropping the pointer instead would have discarded reproduction detail for a live, unfixed regression.

Verification

spawn.py and spawn_spec.md are changed together — the spec is the source of record and the code mirrors it.

Before:

UNMATCHED (1)  ✗ issued/remove_pulse_compat.md

After:

== PyAutoMind-template     unmatched: none    canary scan: clean
== PyAutoMemory-template   unmatched: none    canary scan: clean

The remaining --check output is content drift — the published templates are simply stale (AI_POLICY.md new, plus CONTRIBUTING.md, ROUTING.md, lifecycle.py, repos_sync.py, spawn.py, arxiv script/workflow). That is cleared by a template republish, which is a separate outward-facing step and is deliberately not part of this PR.

Follow-up needed for a green job

Merging this alone will not turn spawn_drift green — the republish must follow, and should run after this merges so the templates are generated from the corrected rules.

Jammy2211 and others added 2 commits July 27, 2026 19:08
Three separate defects, all surfaced by the nightly Spawn Drift job:

1. issued/remove_pulse_compat.md — the sole survivor of the retired flat
   issued/ pile. The lifecycle split (#71/#72) repointed spawn.py's
   ('issued/*', 'DROP') rule to 'active/*', leaving this one file with no
   matching rule -> UNMATCHED -> exit 1. The work it describes is done
   (PyAutoPulse gone, no pulse refs in PyAutoHeart) and already recorded at
   complete/2026/07/remove-pulse-compat.md, so it is a pure orphan. Deleted.

2. AI_POLICY.md — added org-wide today, with no spec rule, so it became the
   next UNMATCHED the moment (1) was cleared. It names the owning org twice,
   so it takes KEEP_SUB (PyAutoLabs -> YOURORG), not a verbatim KEEP.

3. CONTRIBUTING.md — was KEEP verbatim. Today's centralisation rewrote it to
   'Contributing to PyAutoLabs', so a republish would have stamped PyAutoLabs
   branding into a fresh-slate template spawned for another org. Same defect
   class as (2); moved to KEEP_SUB in both rule sets.

Also repoints planned.md's jax-point-source-point-smoke-sentinel entry, which
pointed at issued/jax_point_source_point_smoke_sentinel.md — a 130-line
diagnostic prompt dropped as 'legacy' by the lifecycle migration while the
task stayed planned and unfixed. Restored verbatim to draft/bug/autolens/.

spawn.py and spawn_spec.md are changed together (the spec is the source of
record and the code mirrors it). After this, --check reports
'unmatched: none' + 'canary scan: clean' for both templates; the remaining
drift is content staleness that a republish clears.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Jammy2211
Jammy2211 merged commit e4548f8 into main Jul 27, 2026
@Jammy2211
Jammy2211 deleted the feature/spawn-drift-issued-orphan-ai-policy branch July 27, 2026 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant