Skip to content

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

Merged
Max17190 merged 4 commits into
mainfrom
retire-preinstalled-skills
Aug 29, 2026
Merged

chore(skills): the tree's extension surfaces ship empty#240
Max17190 merged 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
@Max17190
Max17190 merged commit d665204 into main Aug 29, 2026
4 checks passed
Max17190 added a commit that referenced this pull request Sep 2, 2026
docs/stdio-protocol.md called itself the normative reference and documented
openmax-stdio/3 while the binary speaks /5 and `--check --stdio` rejects a
/3 hello on its first line. A client written from the doc failed conformance
before it sent a command. The doc now matches `openmax --spec stdio`: the
hello line carries `continued`; the event table gains `harness_note`,
`compacted`, `turn_refused`, and the optional `approval_request.env`; the
stop_reason table gains `budget_exhausted` and `unverified`, both emitted
by core and mapped by every frontend but named nowhere; and the process
exit code is stated. One "what changed" section per bump.

The printed contract omitted `continued` from its hello line while the
binary emits it. The `Done` doc comment on the wire type listed six stop
reasons and the loop emits eight. The stdio module doc pointed at a README
section that does not exist. README named the /3 contract twice. The usage
doc referred to a `delegate` skill the tree stopped shipping in #240. The
configuration example omitted `context_tokens`, the one field the text two
paragraphs later calls required.
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