Commit Graph
526 Commits
Author SHA1 Message Date
Addy Osmani a120596f6d Merge #545: add authoring rule against model-specific workarounds 2026-09-17 16:38:02 -07:00
Addy Osmani e79ff3bb0d Merge #517: exempt fenced examples from the references link check 2026-09-17 16:37:57 -07:00
Addy Osmani b9f7706a18 Merge #573: make reference-link assertion portable on Windows 2026-09-17 16:37:53 -07:00
Addy Osmani e77fed035b Merge #568: strip every CommonMark fence form in skill-lint 2026-09-17 16:37:48 -07:00
Addy Osmani 6a3c7d692c Merge #576: bind grader results to declared expectations by id 2026-09-17 16:37:43 -07:00
Addy Osmani 92028277c7 Merge #570: fix stale skill count in README heading 2026-09-17 16:37:39 -07:00
mavericksea-aiandClaude Opus 5 0c497ba10f fix(evals): canonicalize expectation text and recompute pass_rate
Two hardening changes to parseGrading:

- Once a result's id is validated, overwrite its text with the declared
  expectation at that index. The id is the binding, so a grader that
  paraphrases an expectation no longer leaks its own wording into the
  saved grading report.
- Stop rejecting a grading whose summary.pass_rate disagrees with the
  counters. pass_rate is derived, not an independent observation, so a
  rounded or mis-divided value is now recomputed from the validated
  results instead of discarding the run. The integer counters
  (passed/failed/total) remain exact-match checks.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 01:19:15 +00:00
mavericksea-ai 13cd6a6d02 fix(evals): bind grader results to declared expectations by id
parseGrading accepted any result set whose length matched the expected count, without verifying that each result corresponded to a declared expectation. A grader could return duplicates, omit an expectation, or include results for undeclared expectations and still pass validation.

parseGrading now takes the full expectations array, requires each result to carry an integer id in 1..n matching the numbered expectations in the prompt, rejects duplicates and out-of-range ids, and derives pass_rate from the validated counters. The grader prompt requests the id field and the call site in runBehavioral is updated.

Five tests added: reordered-but-complete results, duplicate ids, out-of-range ids, omitted expectations, untrusted pass_rate.
2026-09-16 01:00:33 +00:00
dajiaohuang ef66f42509 test: normalize reference validator paths
Signed-off-by: dajiaohuang <mikewushuwen@outlook.com>
2026-09-16 07:57:15 +08:00
dajiaohuang d61823eff2 test: make reference-link assertion portable on Windows 2026-09-16 00:56:36 +08:00
Abhishek Sharma 9a62b94e22 docs(readme): the catalog heading says 24, the section lists 25
`## All 24 Skills` is contradicted by the sentence directly beneath it —
"The pack includes 25 skills total" — and by the section's own contents:

    skills listed under the heading   25
    directories under skills/         25
    validate-skills --strict          25 skills checked
    difference                        (none)

The section does list every skill, meta-skill included, in its own `Meta`
subsection. So 25 is the honest number for the heading.

The nearby "24 lifecycle skills plus the `using-agent-skills` meta-skill"
phrasing is correct and is left alone — 24 is a real count, just not of
what the heading is counting.

Also retargets the one inbound anchor, which the rename would otherwise
break:

    docs/adoption-guide.md:5  ...README.md#all-24-skills -> #all-25-skills

That link is the only reference to the anchor anywhere in the repo
(checked across md/json/ts/js), so the rename is complete.

Gates: validate-skills --strict 25 skills, 0 errors, 0 warnings; the JS
suite 44 pass / 0 fail.
2026-09-14 13:24:35 -07:00
ayobamiseun a1a80d56d1 fix(validator): strip every CommonMark fence form from linted prose (#437)
stripFencedCodeBlocks matched fences with a single whole-document regex that
only recognised a column-zero backtick fence closed by a run of exactly the
same length. Three CommonMark-legal forms slipped through and their contents
were linted as prose: tilde fences, fences indented one to three spaces, and
closing fences longer than their opener. This is live on main today —
spec-driven-development's list-nested examples use indented fences, so the
linter has been reading their contents as skill text.

Replace the regex with a line scanner that tracks the opener's marker and
length, closes only on a same-marker run at least as long, treats an
unterminated fence as running to end of file (so sections after it fail
loud), and follows the CommonMark rule that a backtick fence's info string
may not contain backticks. Stripped lines become empty lines so positions
are preserved.

Add unit coverage for each form plus CRLF input, and run
scripts/lib/skill-lint-test.js in CI — it was the only test file the
workflow did not execute.

Revives the approach from #444 by @ujjwalks, which was approved and then
closed after a rebase conflict.

Closes #437
2026-09-14 14:04:13 +01:00
Addy Osmani be4e44a9fb Merge #553: clarify setup for existing projects
docs: clarify setup for existing projects
2026-09-11 20:14:58 -07:00
Addy Osmani fd00a70f8a Merge #559: define restartable task boundaries
docs: define restartable task boundaries
2026-09-11 20:14:49 -07:00
Addy Osmani 4e94bb5912 Merge #560: map shared core to native adapters
docs: map shared core to native adapters
2026-09-11 20:14:41 -07:00
Addy Osmani 17cbf4b720 Merge #557: avoid double routing on native skill hosts
docs: avoid double routing on native skill hosts
2026-09-11 20:14:31 -07:00
Addy Osmani bc97fd46fd Merge #554: clarify external artifact ownership
docs(spec): clarify external artifact ownership
2026-09-11 20:14:24 -07:00
Addy Osmani 57c0196ff2 Merge #552: clarify stable browser skill name
docs(skills): clarify stable browser skill name
2026-09-11 20:14:16 -07:00
Addy Osmani a9d4b4656e Merge #563: reject null grader expectations without crashing
fix(evals): reject null grader expectations without crashing
2026-09-11 20:14:08 -07:00
Addy Osmani 20e8699cbf Merge #556: link runnable workflow tutorials
docs: link runnable workflow tutorials
2026-09-11 20:14:00 -07:00
Federico Bartoli 6ca0cd7db3 Merge pull request #531 from ayobamiseun/fix/518-plan-clobber-guard
fix(planning): never overwrite an incomplete plan without asking
2026-09-08 09:21:56 +02:00
Federico Bartoli fe6f08112b Merge pull request #422 from HMAKT99/feat/runbooks-observability
docs(observability): expand runbook guidance in alerting section
2026-09-08 09:19:30 +02:00
Federico Bartoli 38e2a4a18f Merge pull request #434 from ayobamiseun/fix/rank1-description-vocab
fix(skills): close description-vocabulary gaps, raise trigger rank-1 floor to 95
2026-09-08 09:05:33 +02:00
ayobamiseun cda4542ade fix(skills): close description-vocabulary gaps, raise rank-1 floor to 95
Eleven positive trigger prompts ranked their skill #2-#3 because the
descriptions lacked vocabulary users actually say (follow-up to #351):

- debugging-and-error-recovery: regression vocabulary (worked yesterday,
  what broke)
- documentation-and-adrs: 'document an architecture decision', design
  reasoning ('documentation' and 'document' don't stem together)
- doubt-driven-development: cross-examining assumptions, stress-testing
  a plan for hidden failure modes, high-stakes changes
- git-workflow-and-versioning: splitting a messy working tree into
  atomic commits
- incremental-implementation: thin/verifiable slices, next task from a
  plan, feature flags
- shipping-and-launch: what needs to be in place before shipping
- spec-driven-development: PRD, objectives and scope
- test-driven-development: red-green-refactor
- using-agent-skills: deciding which workflow applies to the work
- source-driven-development: verify against the official docs
  ('docs'/'documentation' don't stem together)

Trigger rank-1 rate: 86% -> 100% (76/76), no new collision warnings.
CI floor raised from 80 to 95 per the ratchet policy; README baseline
updated and the stale #351 tracking sentence rephrased as guidance.
2026-09-07 21:46:11 +01:00
vam 226bdd3aef Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	skills/context-engineering/SKILL.md
2026-09-07 15:10:46 +08:00
Raghu :) e6a58d5fc3 fix(evals): reject null grader expectations without crashing 2026-09-06 23:20:26 -07:00
Addy Osmani 48cb1168ae Merge #447: add Context Budget Management to context-engineering
docs(context): add Context Budget Management section
2026-09-06 00:43:57 -07:00
Federico Bartoli 469d00f4e6 Merge pull request #415 from HMAKT99/feat/slo-error-budgets
docs(shipping): add Error Budget Release Gate section
2026-09-05 21:22:59 +02:00
vam 17d8e52b7c docs: map shared core to native adapters 2026-09-05 11:54:33 +08:00
vam a1c9bd627c docs: define restartable task boundaries 2026-09-05 11:51:37 +08:00
vam a71eb51e05 docs: avoid double skill routing on native hosts 2026-09-05 11:45:31 +08:00
vam 5b98a0b17b docs: link runnable workflow tutorials 2026-09-05 11:42:49 +08:00
vam 15af65e75b docs(spec): clarify external artifact ownership 2026-09-05 11:40:39 +08:00
vam 4fd76c6f00 docs: clarify setup for existing projects 2026-09-05 11:39:33 +08:00
vam 674921ca8d docs(skills): clarify stable browser skill name 2026-09-05 11:38:44 +08:00
Addy Osmani 84ee506738 chore(release): bump plugin manifests to 0.6.9 0.6.9 2026-09-04 20:24:36 -07:00
Addy Osmani 858c1aea80 Merge #550: clarify Copilot CLI vs VS Code installation
docs(copilot): clarify CLI installation and VS Code commands
2026-09-04 20:21:31 -07:00
Addy Osmani 4d10bcb343 Merge #549: explain lifecycle session handoffs (#513)
docs: explain lifecycle session handoffs (#513)
2026-09-04 20:21:26 -07:00
Addy Osmani 85ea8fbc39 Merge #547: destructive path operations need an allowlisted root
docs(security): destructive path targets need an allowlist, a depth floor, and an owner check
2026-09-04 20:21:20 -07:00
Addy Osmani 8c8cfd1920 Merge #546: name the entry point when several write to one log
docs(observability): name the entry point when several write to one log
2026-09-04 20:21:15 -07:00
DEOWL-kan f7fe1a447d docs(copilot): clarify CLI installation and VS Code commands 2026-09-05 11:13:50 +08:00
DEOWL-kan 878d5d4789 docs: explain lifecycle session handoffs (#513) 2026-09-05 11:13:50 +08:00
notbuckiandClaude Opus 5 45fd4a0439 docs(security): destructive path targets need an allowlist, a depth floor, and an owner check
The trust-boundary list names only remote channels, so local values that the
OS hands you — another process's command line or environment, a filename on a
shared volume, a path in a job payload — read as internal. The one rule about
destructive actions (LLM06) governs who may act, not what gets hit: a
confirmed call with a wrongly derived target deletes the root just the same.
A shape check ("absolute, at least one directory deep") proves well-formedness
and gets mistaken for authorization.

SKILL.md gets the extended trust-boundary item, a prose-only "Destructive
Operations on Derived Paths" next to File Upload Safety, and one line each in
the Input checklist, Red Flags and Verification. The worked example lives in
references/security-checklist.md, per skill-anatomy's rule to move detailed
material out of SKILL.md — the file is already over the 500-line budget, so
this keeps the per-activation cost to +11 lines.

Two limits are stated where the snippet is copied from, rather than implied
away: a marker inside the tree is self-attestation until its integrity is
protected and the expected owner comes from authenticated state, and
resolving a path and then operating on the name is a check/use race wherever
an untrusted process can swap an ancestor.

No new directory, frontmatter unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-04 10:25:46 +02:00
notbuckiandClaude Opus 5 6a9f2eb2d6 docs(observability): name the entry point when several write to one log
A correlation ID identifies a run, not the code path that started it. When a
scheduler, a replay endpoint and a manual CLI run all reach the same job and
write into one sink, the lines are interchangeable — attributing one falls
back to elimination against external records (scheduler history, process
table, deploy log) that only happen to still exist.

Adds a paragraph plus a short example to "3. Structured logging" — stamp the
entry point where the run starts, next to the correlation ID, and propagate
both across queue metadata and outbound calls — and one line each to Red
Flags, Verification, and references/observability-checklist.md.

The field is `entryPoint` rather than `source`: Elastic Common Schema reserves
`source.*` for network fields (source.ip, source.port, …), so a scalar
`source` collides with that mapping and can get documents rejected.

No new heading, no new directory, frontmatter unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-04 10:22:37 +02:00
Federico Bartoli 1c760d6434 Merge pull request #316 from nucliweb/docs/advanced-per-agent-configuration
docs: add advanced per-agent configuration guide
2026-09-04 08:45:55 +02:00
ayobamiseun 0287de4a1c docs: add authoring rule against model-specific workarounds (#534)
A step that exists because one model gets a specific call wrong
constrains agents that would have solved the task directly and spends
turns stronger models need for the actual work — cross-model transfer
measurements (WikiSkill, arXiv:2608.27454) show such skills can leave
a stronger model worse off than no skill at all.

Add 'Write the Procedure, Not the Workaround' to skill-anatomy: the
rule (no step justified only by naming a model, version, or one
agent's private tool name), the two smells (over-specified mechanics,
fragmented diagnostics), a model-neutral writing principle, and a
matching pre-flight line in CONTRIBUTING.
2026-09-03 09:38:30 +01:00
Addy Osmani 020ec10a78 Merge #536: rate limiting must count in a shared store
docs(security): rate limiting must count in a shared store across instances
2026-09-02 23:36:51 -07:00
Addy Osmani 632aa0bcd4 Merge #532: document the Antigravity command-wrapper difference
docs(antigravity): document the command-wrapper discoverability limitation (#445)
2026-09-02 23:36:47 -07:00
Addy Osmani b2ad72ddf2 Merge #544: add a rejected skill-change ledger (#535)
docs: add a rejected skill-change ledger
2026-09-02 23:36:42 -07:00
Addy Osmani 2f036a05ce Merge #537: add database-migration and dependency vocabulary
fix(skills): add database-migration and dependency-audit vocabulary to two skill descriptions
2026-09-02 23:36:38 -07:00