@@ -35,10 +35,13 @@ For suspected vulnerabilities, don't open a public issue. Follow the private rep
3535├── skills/java-optionals/
3636│ ├── SKILL.md
3737│ ├── agents/openai.yaml
38- │ ├── evals/evals.json
3938│ └── references/
40- │ ├── optional-examples.md
41- │ └── source-notes.md
39+ │ ├── java-optional-api.md
40+ │ └── optional-examples.md
41+ ├── docs/agents/
42+ │ ├── eval-case-inventory.md
43+ │ ├── legacy-evals.json
44+ │ └── source-notes.md
4245├── AI_CONTRIBUTION_POLICY.md
4346├── CODE_OF_CONDUCT.md
4447├── CONTRIBUTING.md
@@ -50,12 +53,14 @@ For suspected vulnerabilities, don't open a public issue. Follow the private rep
5053 requests.
5154- ` skills/java-optionals/SKILL.md ` is the runtime instruction file loaded by agents.
5255- ` skills/java-optionals/agents/openai.yaml ` provides display metadata.
53- - ` skills/java-optionals/references/optional-examples.md ` contains larger examples and eval case
54- notes.
55- - ` skills/java-optionals/references/source-notes.md ` records where the skill came from and why it
56- changed over time.
57- - ` evals/ ` contains the hosted Tessl implementation-regression benchmark used for the headline
58- README score.
56+ - ` skills/java-optionals/references/optional-examples.md ` contains runtime-safe examples.
57+ - ` skills/java-optionals/references/java-optional-api.md ` records Java 8 through Java 26
58+ Optional-family compatibility guidance.
59+ - ` docs/agents/eval-case-inventory.md ` , ` docs/agents/legacy-evals.json ` , and
60+ ` docs/agents/source-notes.md ` are maintainer-only material and must not be linked from runtime
61+ skill references.
62+ - ` evals/ ` contains the hosted Tessl implementation-regression benchmark used for headline
63+ reporting.
5964- ` evals-reference/ ` keeps extra review and test scenarios that are useful during development but
6065 aren't part of the headline benchmark.
6166- ` scripts/ ` contains portable validation checks used by CI.
@@ -82,23 +87,32 @@ Run these before committing skill, eval, README, package, script, or CI changes:
8287``` bash
8388python3 scripts/validate_skill.py skills/java-optionals
8489python3 scripts/validate_eval_criteria.py evals evals-reference
90+ python3 -m py_compile scripts/validate_skill.py scripts/validate_eval_criteria.py
91+ bash -n scripts/check_publish_dry_run.sh
8592tessl plugin lint .
8693```
8794
8895If you change the skill text or reference files, also run:
8996
9097``` bash
91- tessl skill review --threshold 100 skills/java-optionals/SKILL.md
98+ tessl skill review --threshold 90 skills/java-optionals/SKILL.md
9299```
93100
101+ The threshold is intentionally below 100 so useful, specific guidance doesn't get removed only to
102+ make the review score look cleaner. Treat the review output as a quality signal and address valid
103+ feedback.
104+
94105If you have Tessl access, you can also run the publish dry-run:
95106
96107``` bash
97108bash scripts/check_publish_dry_run.sh .
109+ tessl plugin publish --dry-run --bump patch .
98110```
99111
100- That dry-run may fail because the current version already exists in the registry. That's expected
101- after a version has already been published; any other failure needs investigation.
112+ The script runs the fast skipped-eval package smoke check and retries with a patch bump if the
113+ current version already exists. The full ` tessl plugin publish --dry-run --bump patch . ` command is
114+ a PR-safe full eval-ingesting dry-run. Release publishing uses an exact-version dry-run before the
115+ real publish command.
102116
103117` tessl skill review ` , ` bash scripts/check_publish_dry_run.sh . ` , and hosted evals require Tessl
104118authentication. Hosted evals also require a linked Tessl project. If you don't have access, include
@@ -186,14 +200,18 @@ tessl eval run --variant with-context --variant without-context .
186200If you don't have a Tessl workspace, that's fine. Open the pull request with the local check results,
187201and a maintainer can run the hosted evals before release.
188202
189- The headline benchmark should stay focused on implementation tasks that mirror the motivating
190- failures. Broad review and smoke scenarios can live in ` evals-reference/ ` unless they're part of the
191- headline measurement.
203+ The headline benchmark should stay focused on realistic tasks that mirror the motivating failures.
204+ It must include a documented mix of natural activation prompts and explicit invocation prompts.
205+ Natural scenarios must not mention ` $java-optionals ` or ask to use the skill. Explicit scenarios may
206+ name the skill and must be labeled as explicit in ` criteria.json ` .
207+
208+ Every scenario directory must contain ` task.md ` , ` criteria.json ` , and ` capability.txt ` . Headline
209+ implementation criteria must include compile/artifact checks and behavior correctness checks before
210+ Optional style checks. Do not move or hide baseline-solved scenarios just to improve lift; keep broad
211+ coverage in ` evals-reference/ ` and report it separately.
192212
193- The broader review scenarios in ` evals-reference/ ` are useful while developing the skill, but many
194- are small snippets that a strong generic model can already solve without the skill. Keep them as
195- reference coverage unless they reveal a real implementation failure that belongs in the headline
196- benchmark.
213+ Runtime skill references must not contain eval inventories, expected answers, score rubrics, hosted
214+ run IDs, or benchmark claims. Put maintainer-only eval history in ` docs/agents/ ` .
197215
198216## Benchmark Updates
199217
@@ -203,7 +221,9 @@ When the hosted benchmark changes:
203221- record the content commit;
204222- update baseline and skill scores;
205223- update lift, raw score ratio, and missed-point reduction;
206- - keep the README wording clear about what the benchmark measures.
224+ - report natural activation, explicit invocation, headline combined, and reference/full results
225+ separately when available;
226+ - keep the README wording clear about what the benchmark measures and avoid stale fixed claims.
207227
208228## Release Checklist
209229
0 commit comments