Skip to content

Reconcile tools/{issue-ready,memory-index}.py with init-workspace upstream without losing the #56 and #63 fixes #69

Description

@prekabreki

Context

#63 was closed by #68, but its Constraints section asked for the tools to be re-copied
from the init-workspace skill rather than hand-patched, so this repo would stop drifting
from upstream. The executor hand-patched blocked_by() instead. The bug is fixed; the drift
is not. This issue closes the drift.

Measured 2026-08-30 against ~/git/vibe-skills/petur-skills/skills/init-workspace/assets/tools/:

file upstream repo differing lines
issue-ready.py 245L 266L 21
memory-index.py 79L 67L 24
session-start-context.py 95L 95L 0 (already in sync)

Acceptance criteria

Files / where this lives

How to verify

Constraints

  • Use ./.venv/bin/python, not bare python. A bare python is the system 3.14 and makes
    tests/test_tool_resolution.py fail spuriously (it skips under prefix == /usr). That false
    red already happened once, on issue-ready.py misses the list form of Blocked by, so blocked issues are offered as ready #63.
  • Do not change issue-ready.py's output format - the SessionStart hook renders it verbatim.
  • Do not touch tools/session-start-context.py.
  • Reconciliation may well mean patching upstream first and then copying down, rather than
    copying down and re-patching. Either order is fine; losing a fix is not.

⚠ Danger zones (review focus)

  • The drift is bidirectional, so a blind cp from upstream is a regression, not a fix.
    Overwriting tools/issue-ready.py with the 245-line upstream file deletes BOTH the Fix yt-dlp resolution under --user installs, and the UTF-8 crash hiding ready work #56 UTF-8
    fix and the issue-ready.py misses the list form of Blocked by, so blocked issues are offered as ready #63 ## Blocked by fix, and the suite may still look green if nothing exercises
    them. Diff in both directions before copying anything.
  • issue-ready.py's output is what an autonomous wave treats as "safe to start". Under-detection
    is silent and only shows up later as an executor picking up genuinely blocked work. Re-test the
    list form with blockers partially satisfied, not just present.
  • The 24 differing lines in memory-index.py are unexamined. Read them before deciding direction;
    the repo being 12 lines shorter does not mean it is behind.

Out of scope

Notes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    scopedIssue drafted and specced

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions