Skip to content

Remove only non-owner prose shell after the N-2 window #894

Open

Description

@tbhb-agent

Problem

After the supported-version window closes, the frozen prose implementations would remain a second copy of behavior already owned by Go. The original source bodies total 436 scc code lines: suppression checking at packages/agents/source/skills/fix-prose/shared/scripts/check-suppressions.sh:56, preflight at packages/agents/source/skills/fix-prose/shared/scripts/preflight.sh:24, and writer context at packages/agents/source/skills/write-prose-fix/shared/scripts/context.sh:12.

Part of #588 and #327. Removes only this area's non-owner frozen shell after the N-2 warning period; the permanent forwarding entries remain.

Acceptance criteria

  1. AC1: Given the release record, at least two warning releases have elapsed before any frozen implementation is removed.
  2. AC2: Given the removal ledger, every removed implementation is one of this area's three frozen bodies with its completed Go owner identified.
  3. AC3: Given the changed/deleted/renamed path set, no path matches the applicable owner or constitutional policy.
  4. AC4: Given the generated skill entry points and a supported binary, their behavior matches the immediately preceding Go-backed deployment.
  5. AC5: Given a missing or too-old binary, the shared launcher's existing failure behavior is unchanged.
  6. AC6: Given a workflow already in progress, the remaining Go implementation can continue its supported state and notes.
  7. AC7: Non-functional: regenerating canonical sources reproduces the removal of this area's frozen implementations from packages and deployments.
  8. AC8: Non-functional: existing Go coverage and retained integration coverage pass on their promised platforms.
  9. AC9: Given consumer guidance, it accurately describes the supported minimum version and remaining forwarding entry points.

Scope and non-goals

Scope: delete only the non-owner frozen copies preserved by 06 and 07, update their compatibility guidance, and regenerate output/tokens/locks. Resolve the exact frozen paths from those merged rollout ledgers before preparing the deletion diff. The original three script names remain as forwarding entry points through #321's launcher.

Non-goal: deleting or modifying any owner or constitutional path, including a shared library or guard; changing the launcher; removing legacy state/notes support; retiring further Bats; further Go behavior; deleting runtime workflow evidence. The protected deletions belong only to the single cutover directly under #588 with the owner's exact-head review. This area has no protected-path handover at the baseline.

Approach

Check release evidence against docs/compatibility.md:3 and docs/compatibility.md:5. Build the exact removal inventory from 06 and 07, map each body to 01 to 05, and classify every removal before editing. The relevant baseline patterns are .agents/agent-skills.conf:5 and .agents/agent-skills.conf:9; recheck the pinned base's current patterns at implementation time.

If any retained path now matches owner or constitutional policy, leave it intact and hand its exact path and measured size to #588's single cutover; do not delete it here or broaden this child. Keep #328's hook implementations and #321's shared library outside this inventory. Regenerate rather than editing deployed copies manually. A removal of fallback-specific test cases requires separate covered retirement, not an incidental deletion here.

Dependencies

Blocked by: #891, #892, #893, #333, #544, #753.

Prerequisite: release evidence establishing the full N-2 warning window for all three implementations. The required binary and launcher deliveries from #321, #333 and #544 must already be available, and #753 remains the enforcement-protection prerequisite. This child does not depend on #588's protected-path cutover, which avoids a completion cycle.

Size

S. Estimated 536 code lines: deletion of the three frozen originals measured by scc 4.1.0 at 436 code lines, plus 100 for bounded integration/generation adjustments. Recount the actual retained bodies before opening the PR. Exclude only generated output under packages/agents/{claude,codex}/.apm/skills/, .claude/skills/, .agents/skills/, and tokens.json; source copies and frozen copies elsewhere count. Hard limits: 800 code lines and 2,000 prose lines; split rather than exceed either.

Verify plan

  • AC1: cite the first deprecation warning and at least two published warning releases; check the minimum version against the release containing all required commands.
  • AC2: compare the exact removal ledger with 06/07's frozen-copy inventories, the diff and completed Go owners 01 to 05.
  • AC3: classify every added, modified, deleted and renamed path against the pinned base's owner/constitutional patterns; require no match and preserve any protected remainder for Replace complex shell with tested Go, starting with gates and merging #588.
  • AC4: run recorded fixtures through both generated harness entry points before and after deletion, comparing status, streams, refusals and state artifacts.
  • AC5: run the existing Port the shared skill library (lib.sh, agent.sh, signing.sh, gates.py) to Go #321 shared-launcher missing/outdated-binary integration fixtures without modifying their contract.
  • AC6: begin a run before removal and continue it afterwards, including legacy state and notes fixtures; inspect evidence for unintended cleanup.
  • AC7: regeneration, token/lock refresh, deployment audit and mise run check-generated-skills leave no stale frozen copy or unexplained diff.
  • AC8: run the existing native Go matrix and retained integration cases on their promised platforms; do not count skipped cases as coverage.
  • AC9: compare documentation and command help with supported release evidence and retained public entry points.
  • Definition of done: D1 each AC is verified at the merged head, with the commands and results cited in the pull request's Verification. D2 an independent review approves the exact merged head, and every finding has a recorded disposition. D3 required checks pass with no gate loosened. D4 the leak scans the repository specifies are clean, and every post made for this work passes the per-post leak review before it is posted. D5 every commit is signed. D6 the documentation matches the change or the Verification says why there is no impact. D7 every commit has an Assisted-by trailer and the pull request has the provenance:agent-assisted label. D8 the pull request stays within the size limits. D9 follow-ups are filed as issues and listed under Related. D10 the merge closes the issue through a closing reference, the board shows Done, and the final Status: comment names the merge commit.

Risks

Premature removal would strand consumers still relying on the frozen implementation. A broad cleanup could delete active evidence or a protected guard. Undo: revert this deletion and regenerate to restore the frozen bodies; do not change the supported Go behavior or remove workflow state.

Operator authority

None. Protected deletions are explicitly excluded and remain with #588's single owner-reviewed cutover.

Activity

  1. tbhb-agent commented on Oct 27, 2026

    @tbhb-agent
    ContributorAuthor

    Refinement: READY — Remove only non-owner prose shell after the N-2 window
    Model: gpt-6-astra

    Child 09 Remove only non-owner prose shell after the N-2 window

    Verdict: READY

    Checked: The three originals total 436 code lines, supporting the 536-line estimate. Removal remains conditional on the warning releases required by docs/compatibility.md:3 and docs/compatibility.md:5. All 15 current source, package and deployment paths match neither .agents/agent-skills.conf:5 nor .agents/agent-skills.conf:9. Actual frozen paths must be recounted and reclassified before deletion; protected paths and active workflow evidence remain excluded.

    Gaps: None.

    Split: None required at the measured baseline.

    Definition of done

    The definition of done for this issue (Chore). Tick each item and give its evidence.

    • D1 The author verified each AC on the merged head, and the Verification section of the pull request cites each AC ID with its evidence: the command and its result, or a link.
    • D2 An independent reviewer approved the exact merged head, and the author resolved each finding or filed it as a follow-up.
    • D3 The required checks pass on that head, and any loosened gate has the owner's approval of that exact head.
    • D4 The leak scans come back clean: gitleaks, devtools' check-leaks.sh with the repository's private-strings list, and the leak review of each post.
    • D5 The author signed each commit, the squash included.
    • D6 The docs match the change (README, docs/, CHANGELOG or help text), or the Verification section says "No doc impact" and why.
    • D7 The commits and the squash have Assisted-by trailers, and the pull request has the provenance:agent-assisted label.
    • D8 The pull request stays within the size limits, or the owner approved its exact head over the hard limit.
    • D9 The author files follow-ups and deferred findings as issues with at least a Problem and numbered AC and lists them under the Related section of the pull request. Any work left in the code links its issue.
    • D10 The merge closes the issue through a closing reference and the board shows Done. The final Status: comment names the merge commit.
    • devtools-1 mise run check is green, and so are the coverage floors mise run cover-go-check and mise run cover-py-check, which check doesn't run.
    • devtools-2 A change to skill sources under packages/agents/source/ commits what mise run generate-skills, then mise run skill-tokens, then apm install rewrite, in that order, and check-generated-skills (part of lint) passes.
    • devtools-3 A consumer-visible change (the vendored payload, a skill, a reusable workflow, a task or a pin) has its consumer steps in docs/agent-skills-migration.md or the adoption docs, or the PR's Verification says "No consumer impact" and why.

    Round: 2 of 3

  2. added theissue type on Oct 27, 2026
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

    refinement:readyPassed the Definition of Ready; may be picked up

    Type

    Fields

    Priority

    None yet

    Work type

    None yet

    Projects

    • Status
      Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions