Skip to content

chore(skills): the tree's extension surfaces ship empty - #240

Open
Max17190 wants to merge 4 commits into
mainfrom
retire-preinstalled-skills
Open

chore(skills): the tree's extension surfaces ship empty#240
Max17190 wants to merge 4 commits into
mainfrom
retire-preinstalled-skills

Conversation

@Max17190

@Max17190 Max17190 commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Why

A file under .agents/ or .openmax/ is installed capability that every session working in this repo pays frozen-prompt bytes for on every request, not an example. That principle removed the shipped plan mode in #222, but the delegate and parallel-explore skills predate it: they landed the same day #37 removed the built-in task subagent, as its replacement, and survived as a grandfathered exception. Measured with openmax --spec usage, they cost 530 chars (~132 tokens) of frozen prefix per request in this repo.

Summary

  • Remove the four tracked files under .agents/skills/ (the recipes are retained outside the repo with the measurement rigs).
  • AGENTS.example.md's nested-agents row now says to ask the agent to author a delegate skill when the project wants one, instead of naming pre-installed files.
  • New guard the_extension_surfaces_ship_empty (prompt.rs) reads the repository index via git ls-files and fails when any tracked file returns to either surface; it skips only when git or a checkout is absent (a packaged crate), and fails on any other read problem.

Test Plan

  • The guard was run against the pre-removal tree first and failed, listing the four files; after removal it passes.
  • cargo test --workspace: 842 passed, 0 failed.
  • cargo clippy --workspace --all-targets: zero warnings.
  • Frozen-prefix cost measured in a fixture project with the same binary: 8056 chars before, 7526 after, a 530-char (~132 token) saving on every request.

Greptile Summary

The repository now recognizes packaged source trees by the absence of .git metadata rather than parsing Git’s localized error text. The extension-surface guard skips correctly in a source-tree copy, passes in this checkout, and rejects a tracked file placed under a protected extension directory.

Merge-safe: yes.

Confidence Score: 5/5

No blocking failure remains.

The packaged-tree behavior was exercised under a non-English locale and no longer depends on Git diagnostic text; the repository guard also accepted the current checkout and rejected a controlled tracked extension file.

T-Rex T-Rex Logs

What T-Rex did

  • The T-Rex run executed the uploaded shell harness against three configurations to validate the extension-surface guard policy.
  • In the German locale with no Git present, the source-tree test printed a no-checkout skip and did not invoke a fake Git.
  • The reviewed checkout passed with no protected files listed by the Git index.
  • The controlled checkout failed at crates/core/src/prompt.rs:733 when naming the tracked extension file.
  • Overall, the tests show the guard is locale-independent and enforces the intended tracked-file policy.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (3): Last reviewed commit: "fix(core): the packaged-tree skip is str..." | Re-trigger Greptile

A file under .agents/ or .openmax/ is installed capability every
session in this repo pays for on every request, not an example. The
delegate and parallel-explore skills predate that principle (they
landed the day #37 removed the built-in task subagent, as its
replacement) and survived #222's plan-mode removal as a grandfathered
exception, at a measured 530 chars (~132 tokens) of frozen prompt per
request. The surfaces now ship empty, the AGENTS example says to ask
the agent for a delegate skill, and a guard test reads the repository
index so a tracked file can never quietly return.
Comment thread crates/core/src/prompt.rs Outdated
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